- Add SAL2 annotations
- Initialize Iosb, otherwise the function will return uninitialized data on failure
- Add NULL check for lpNumberOfBytesWritten/lpNumberOfBytesRead to match Windows 8+ behavior, which Wine code relies on.
See CORE-20559 and CORE-17376
Replace unbounded vsprintf() call in DbgPrintEarly() with vsnprintf()
when formatting into a fixed-size 1024-byte stack buffer in ARM HAL.
Automated security fix generated by Orbis Security AI.
CORE-17604
Co-authored-by: OrbisAI Security <mediratta01.pally@gmail.com>
Stop `PS_JOB_TOKEN_FILTER`'s pack(1) scope from leaking into `EJOB`, which misaligns kernel fields on ARM64.
Use the Win64 heap entry layout on ARM64 and assert the heap metadata offsets verified against NT ARM64 symbols.
Keep heap alignment masks pointer-sized and size `STACK_TRACE_DATABASE` `ERESOURCE` padding for all Win64 targets.
CORE-18200
Move 'xdk' from `OBJECT_DEPENDS` (which forces RC recompilation when xdk changes) to `add_dependencies()` at the target level (which only ensures build order without cascading into recompilation).
This applies to all 5 theme msstyles (Lautus, Lunar, Mizu, Modern, Blackshade) and 3 TLB modules (stdole2, stdole32, mshtml).
Addendum to commit 1628f5e682 (PR #8576).
Improve simplicity for future.
JIRA issue: CORE-8466
- Remove the 1st parameter (PDC) of
TextIntUpdateSize function.
- Remove the 1st parameter (PDC) of
IntRequestFontSize function.
Optimize for speed.
JIRA issue: N/A
Do not initialize the STARTUPINFO member, which is already
filled with zeros, with zeros, in StartLsass and
StartServicesManager functions.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
Due to resource compiler (windres)'s
bug, WS_TABSTOP style wasn't added
to IDC_CONFIRM_INSTALL checkbox
(I've confirmed WS_TABSTOP lackness
on reactos.exe with Resource Hacker
and RisohEditor). This PR will improve
keyboard usability.
JIRA issue: N/A
- Add WS_TABSTOP style to
IDC_CONFIRM_INSTALL checkbox
in IDD_SUMMARYPAGE resource
dialog.
- Use a global structure instead of pointer
- Allocate only the GUID buffer
- Keep track of allocated size and number of GUIDs
- Grow in steps of 8 GUIDs
- Use ExAllocatePoolWithTag instead of ExAllocatePool
- Use IsEqualGUID
See CORE-12791
* [ASMPP] Translate MASM NOT as bitwise complement
MASM NOT is a bitwise operator. Emitting C/GAS logical negation changes numeric constant values, for example X87XAM_BAD becomes 0 instead of 0xf800.
* [ASMPP] Support additional MASM expression operators
Map MASM expression operators through a single helper and add support for shr, eq, ne, lt, le, gt, and ge. This keeps existing and/or/shl/not handling while allowing expressions outside the instruction-token set.
* [ASMPP] Translate MASM if expressions
Handle plain MASM if through the expression translator so operators like ne are emitted as Clang/GAS syntax. Keep ifdef, ifndef, else, and endif on the existing directive path.
* [ASMPP] Handle RIP-relative numeric offsets
Keep constant +/- offsets before the emitted [rip] suffix so Clang IAS sees forms like symbol+4[rip] instead of the invalid symbol[rip]+4.
* [ASMPP] Balance FRAME procedure unwind directives
Clang IAS rejects .func/.endfunc and requires .seh_endproc or .cfi_endproc to match an active frame. Track whether each PROC line contains FRAME, including forms such as PROC PRIVATE FRAME, and emit the closing unwind directive only for framed procedures.
* [ASMPP] Simplify whitespace skipping for RIP offsets
kernel32 functions can be called during process-attach. The same must be true for kernel32_vista. Wine's msvcrt calls GetUserDefaultLocaleName in kernel32_vista during process attach, which calls RtlLcidToLocaleName in ntdll_vista. If that function is delay-loaded (which is probably not allowed anyway during process-attach), the dll will not be initialized, the default user locale is 0 and RtlLcidToLocaleName fails.
Wine code doesn't check for failure and instead continues copying an uninitialized string buffer into the heap, causing heap corruption.
After removing the (redundant) add_delay_importlibs entry, this doesn't happen any longer.
This reverts commit 4f5478d. There is no effect on memory usage, because we load ntdll_vista anyway. See CORE-13361.
The shortcut spawns CMD.EXE in the background and runs a specific
command-line that determines where the reactos.exe installer is:
cmd.exe /D /E:ON /C "start %SystemDrive%\%PROCESSOR_ARCHITECTURE:x86=I386%\reactos.exe"
An alternative could be:
cmd.exe /D /C "for /F %f in ('"if %PROCESSOR_ARCHITECTURE%==x86 (echo I386) else (echo %PROCESSOR_ARCHITECTURE%)"') do start %SystemDrive%\%f\reactos.exe"
(In this second case an exact value comparison is made, contrary
to the first case where all instances of "x86" would be replaced.)
The reason for using CMD.EXE, is that the `PROCESSOR_ARCHITECTURE`
environment variable contains the "almost" correct value for the
architecture directory name where reactos.exe can be found, except
for the x86 case where `PROCESSOR_ARCHITECTURE` is set to "x86"
(as on Windows) but the directory is named "I386" (as on Windows again).
The environment variables used by some shell links for the Live-environment,
are passed as data by CMake on the MKSHELLLINK build tool command-line.
When building on Windows, they are transmitted to the tool via CMD.EXE,
and we have somehow to force CMD.EXE to keep these variables unexpanded.
Depending on the precise context where these variables are being used,
either use an "escaped" format with `^%`, as in: `^%SystemRoot^%` ,
or, surround the variable name with `^` instead: `%^SystemRoot^%` .
This second form appears to work when the variable is specified within
a quoted sub-string given to the CMD.EXE command-line.
Addendum to commit a46e1e96ec.
Only handle `DESTINATION`, and transfer all the other parameters verbatim to `add_link()`.
Addendum to commits 3a3b16af0d, 8cb3980766, and a46e1e96ec (PR #8936).
Using `userenv!CreateEnvironmentBlock()` when starting the shell ensures
that, even if it's started as LocalSystem, its environment inherits the
"dynamical" environment variables created by SMSS at runtime (stored in
`HKLM\SYSTEM\CurrentControlSet\Session Manager\Environment`).
In ReactOS/Windows PE "MiniNT" mode, the Winlogon environment doesn't
contain these values, and doesn't start the Setup with this augmented
environment. (This is compatible with what Windows does, on WinPE or
during a clean installation.)
Winlogon creates an augmented environment only when a user logs in and
starts its shell (standard boot), which isn't the case in "MiniNT" mode.
It is thus the responsibility of the module that starts the shell instead
to do it: in ReactOS' case, userinit.exe in LiveCD mode.
As a result, we get access to the `COMPUTERNAME`, `NUMBER_OF_PROCESSORS`,
`OS`, and `PROCESSOR_*` environment variables, amongst others.
For some reason on Vista x64 0xdeadbeef isn't detected as an invalid handle and the whole thing crashes. INVALID_HANDLE_VALUE on the other hand is detected as an invalid handle, so use that.
Both Efektler and Etkiler are correct Turkish words for "effects",
but they are used in different contexts.
- Efektler: Refers to special effects in media, movies, or sound
(visual effects, sound effects).
- Etkiler: Refers to consequences, results, impacts, or influences
(side effects, positive/negative impacts).
The former is more correct here, as desk.cpl changes visual effects.
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
- Harmonize, fix cut off text, make more space for it
- Shrink trackbar width where it's necessary (et-EE, hu-HU, tr-TR)
- Align "Less" to the right using RTEXT
- Align current resolution using CTEXT - same as SS_CENTER, but shorter
- Fix broken Y-position in Portuguese (pt-PT) translation
- Shorten words in Greek (el-GR) translation