http://bugs.winehq.org/show_bug.cgi?id=20313
Summary: Patch "user32: Draw the whole button only if requested" caused uninitialized memory use Product: Wine Version: 1.1.27 Platform: PC URL: http://source.winehq.org/git/wine.git/?a=commit;h=8d54 f582776d590b236e288f9ef8085bb221ccab OS/Version: Linux Status: NEW Keywords: download, regression, source Severity: normal Priority: P2 Component: user32 AssignedTo: dmitry@codeweavers.com ReportedBy: dank@kegel.com CC: wine-bugs@winehq.org
Running the ntdll tests under valgrind, I get a crash. Because I also happen to have visual studio 2005 installed, I got a handy crash dialog offering to debug. That dialog seemed to cause the following valgrind error:
Conditional jump or move depends on uninitialised value(s) at IsRectEmpty (uitools.c:1282) by IntersectRect (uitools.c:1331) by PB_Paint (button.c:880) by paint_button (button.c:207) by ButtonWndProc_common (button.c:450) by ButtonWndProcW (button.c:564) ... by SetFocus (focus.c:293) by ButtonWndProc_common (button.c:336) by ButtonWndProcW (button.c:564) ... Uninitialised value was created by a stack allocation at PB_Paint (button.c:802)
Either adding the line memset(&focus_rect, 0, sizeof(focus_rect)); at the top of PB_Paint, or reverting the patch http://source.winehq.org/git/wine.git/?a=commit;h=8d54f582776d590b236e288f9e... makes the warning go away. Evidently that patch jumped over the initialization of that variable when it shouldn't have...