mirror of
https://github.com/reactos/reactos.git
synced 2024-07-12 23:55:07 +00:00
![]() [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 |
||
---|---|---|
reactos | ||
rosapps | ||
rostests | ||
wallpaper |