https://bugs.winehq.org/show_bug.cgi?id=51265
Bug ID: 51265 Summary: valgrind shows an uninitialized read in is_wow64_thread() Product: Wine Version: 6.9 Hardware: x86-64 OS: Linux Status: NEW Keywords: valgrind Severity: normal Priority: P2 Component: wineserver Assignee: wine-bugs@winehq.org Reporter: z.figura12@gmail.com Distribution: ---
==875840== Conditional jump or move depends on uninitialised value(s) ==875840== at 0x1493A6: is_wow64_thread (registry.c:2074) ==875840== by 0x1493A6: req_create_key (???:0) ==875840== by 0x14AAC2: call_req_handler (request.c:312) ==875840== by 0x14B9E7: read_request (request.c:367) ==875840== by 0x15350F: thread_poll_event (thread.c:383) ==875840== by 0x128D45: fd_poll_event (fd.c:525) ==875840== by 0x128D45: main_loop_epoll (???:0) ==875840== by 0x128FAD: main_loop (fd.c:985) ==875840== by 0x11AA61: main (main.c:149)
The problem is that a process that's starting up makes a couple of create_key/open_key calls before it maps the main image.
This can be trivially fixed by initializing the "machine" field. None of the keys we open are actually sensitive to architecture (well, one is, but we use the WOW64_64KEY flag on it). Still, it strikes me as a little fragile. Can we determine the architecture any earlier?