http://bugs.winehq.org/show_bug.cgi?id=20318
Summary: RtlFreeHeap() valgrind annotation wrong in error path Product: Wine Version: 1.1.31 Platform: PC OS/Version: Linux Status: NEW Keywords: download, source Severity: normal Priority: P2 Component: ntdll AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com CC: m.b.lankhorst@gmail.com
Running the kernel32 heap tests under valgrind produces the warning
Invalid free() / delete / delete[] at notify_free (heap.c:222) by RtlFreeHeap (heap.c:1474) by HeapFree (heap.c:281) by GlobalFree (heap.c:749) by test_heap (heap.c:219) Address 0x7f0371f0 is 12 bytes after a block of size 2,020 alloc'd at notify_alloc (heap.c:214) by RtlAllocateHeap (heap.c:1421) by get_tls_data (test.h:216) by winetest_set_location (test.h:252) by test_heap (heap.c:72)
which probably indicates that the valgrind annotation at line 1474 of ntdll/heap.c needs to be moved down to done: at line 1492, or something like that, so if the sanity checks fail, we don't tell valgrind we're freeing a block.
http://bugs.winehq.org/show_bug.cgi?id=20318
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WONTFIX
--- Comment #1 from Alexandre Julliard julliard@winehq.org 2009-10-19 08:31:12 --- The point of having it early is precisely so that we can get a warning on freeing invalid blocks. Of course that means it's going to trigger for tests that do it on purpose, consider it a test of the valgrind detection...
http://bugs.winehq.org/show_bug.cgi?id=20318
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #2 from Dmitry Timoshkov dmitry@codeweavers.com 2009-10-19 11:31:19 --- Closing WONTFIX.