mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-29 12:23:30 +00:00
e1ecfcf440289c3c2468fd91f6976349e330ef54
[KERNEL32]: Fix SetDllDirectoryW: - Fail if ";" is in path - Use RtlCreateUnicodeString instead of manual string management -- if the allocation fails, do not free the current base directory string! Older API would always free the current directory string, even if setting up the new one failed. - Don't assume lpPathName is filled out, it can be NULL, and this means the DLL directory should be cleared. [KERNEL32]: Fix SetDllDirectoryA as above, additionally use RtlInitAnsiStringEx to protect against overflow, and use Basep8BitStringToUnicodeString, to add support for OEM paths instead of assuming ANSI. [KERNEL32]: GetDllDirectoryW: correctly NULL-terminate and check lengths [KERNEL32]: GetDllDirectoryA: same as above, plus use BasepUnicodeString* APIs to correctly support OEM paths instead of assuming ANSI. [KERNEL32]: NeedCurrentDirectoryForExePath(A/W): call internal BasepIsCurDirAllowedForPlainExeNames instead of converting from A->W, this isn't needed. [KERNEL32]: GetFullPathNameW just calls RtlGetFullPathName_U, no extra checks/etc are needed. Next steps are GetFullPathNameA, GetShort/LongPathNameA, GetShort/LongPathNameW, hoping to bring the wine test failures closer to zero. svn path=/trunk/; revision=54309
Description
A free Windows-compatible Operating System
528 MiB
Languages
C
86.9%
C++
10.7%
Python
0.7%
Assembly
0.5%
CMake
0.5%
Other
0.4%