https://bugs.winehq.org/show_bug.cgi?id=48735
Bug ID: 48735 Summary: OVERLAPPED struct has uninitialized bytes Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: jeffersoncarpenter2@gmail.com Distribution: ---
Created attachment 66619 --> https://bugs.winehq.org/attachment.cgi?id=66619 Configure output.
Steps to reproduce
* Check out 26ffc40bfb42b7c05ce9513bf479e31eb85294b1 (latest commit as of this posting). Configure and build wine. (Configure output attached) * Disable wine preloader to make valgrind a little quieter * Compile a test program (I used 'int main() { return 0; }') using i686-w64-mingw32-gcc * Run this under valgrind. Valgrind output attached.
The topmost error is
==30622== Syscall param writev(vector[...]) points to uninitialised byte(s) ... ==30622== by 0x406EFD80: process_send_command (rpc.c:1137)
The root cause is that the OVERLAPPED struct does not have Offset and OffsetHigh initialized before they are written into the wineserver request pipe.
In this case, the target file is the process_entry's control_pipe. MSDN specifies the Offset and OffsetHigh members must be zero when writing to a file that does not support seeking (https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-...).