On Wed Jun 18 15:09:09 2025 +0000, Nikolay Sivov wrote:
> Should we check anything here? For example ActiveFrame could be null or
> it could be that ActiveFrame != &frame_extended->Frame.
Both of these cases lead to crashes on Windows. So I guess it's just unsafe, as the function name states.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8326#note_107066
Related to 57817044b983683f115edea6c5068ed6cddd858b. I believe originally the
missing double null terminator caused Windows to take garbage memory as file
name resulted in the ERROR_FILE_NOT_FOUND. Now it's fixed we are seeing what
Windows actually returns.
!8316
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8361
* * *
While investigating another problem, I found we are handling empty attributes list differently compared native.
But the actual problem is this, shouldn't `CRYPT_SizeOfAttributes` add `sizeof(CRYPT_ATTRIBUTES)` to `size`? Basically we return `size == 0` when the attributes list is empty, so the caller allocates zero bytes and call `GetParam` again, and we write out-of-bound trying to `out->cAttrs = in->cAttrs` in `CRYPT_ConstructAttributes`. (Of course with this MR this problem no longer show up, but the question still stands.)
--
v2: crypt32: Handle missing attributes in CDecodeSignedMsg_GetParam.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8350
In CopyFileEx, and DeleteFile functions, by default, the file name
and path are limited to MAX_PATH characters. To extend this limit
to 32,767 wide characters, need prepend "\\\\?\\" to the path.
--
v11: kernelbase: Limit the maximum path length for DeleteFile.
kernelbase: Fix DeleteFileA doesn't support long path.
kernelbase: Limit the maximum path length for filesystem.
ntdll: Check if long path aware is enabled.
kernel32/tests: Add tests for DeleteFile
kernel32/tests: Add tests for maximum path length limitation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540