It looks like according to the C spec, calling memcpy(0, 0, 0) results in undefined behavior.
See also https://developers.redhat.com/articles/2024/12/11/making-memcpynull-null-0-w...
From: Vitaly Lipatov lav@etersoft.ru
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56154 --- dlls/wow64/security.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/wow64/security.c b/dlls/wow64/security.c index 49f4adea3c1..a7616331600 100644 --- a/dlls/wow64/security.c +++ b/dlls/wow64/security.c @@ -471,7 +471,7 @@ NTSTATUS WINAPI wow64_NtQueryInformationToken( UINT *args ) if (!status) { dacl32->DefaultDacl = dacl->DefaultDacl ? PtrToUlong( dacl32 + 1 ) : 0; - memcpy( dacl32 + 1, dacl->DefaultDacl, ret_size - sizeof(*dacl) ); + if (dacl->DefaultDacl) memcpy( dacl32 + 1, dacl->DefaultDacl, ret_size - sizeof(*dacl) ); } if (retlen) *retlen = ret_size + sizeof(*dacl32) - sizeof(*dacl); return status;