Here's a more detailed breakdown of the current valgrind warnings when running the wine test suite as of yesterday, with the ntdll/heap warnings suppressed (as they will be from now on):
1 --25396-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting 1 vex x86->IR: unhandled instruction bytes: 0xFB 0xC3 0x0 0x0 2 Source and destination overlap 3 Use of uninitialised value of size 4 4 Invalid read of size 1 4 Invalid write of size 4 4 Unhandled exception: illegal instruction 5 Unhandled exception: page fault on write 7 Unhandled exception: page fault on read 7 Invalid free() / delete / delete[] 8 Invalid write of size 1 14 Syscall param writev(vector[...]) points to uninitialised byte(s) 19 Invalid read of size 4 40 Invalid read of size 2 105 Conditional jump or move depends on uninitialised value(s) 893 X bytes are definitely lost
I think *all* the remaining invalid write errors are bogus, either they're in GetDIBits, in a video driver, or in the stack backtracing code.
All of the remaining invalid free errors are in the oleaut32 vartype test:
Invalid free() / delete / delete[] at notify_free (heap.c:255) by RtlFreeHeap (heap.c:1748) by SysFreeString (oleaut.c:194) by test_VarBstrFromDate (vartype.c:4910) by func_vartype (vartype.c:6276) by run_test (test.h:535) by main (test.h:585) Address 0x7f0a1560 is not stack'd, malloc'd or (recently) free'd
for which I've filed http://bugs.winehq.org/show_bug.cgi?id=20992