https://bugs.winehq.org/show_bug.cgi?id=38440
Bug ID: 38440 Summary: valgrind shows a definite leak in comdlg32/filedlg Product: Wine Version: 1.7.41 Hardware: x86 OS: Linux Status: NEW Keywords: download, source, testcase, valgrind Severity: minor Priority: P2 Component: comdlg32 Assignee: wine-bugs@winehq.org Reporter: austinenglish@gmail.com CC: dank@kegel.com Distribution: ---
==6025== 28 bytes in 1 blocks are definitely lost in loss record 237 of 1,085 ==6025== at 0x7BC49E0E: notify_alloc (heap.c:254) ==6025== by 0x7BC4E044: RtlAllocateHeap (heap.c:1715) ==6025== by 0x7BC43059: alloc_fileio (file.c:381) ==6025== by 0x7BC45096: server_ioctl_file (file.c:1404) ==6025== by 0x7BC45A43: NtFsControlFile (file.c:1684) ==6025== by 0x7B872671: ConnectNamedPipe (sync.c:1615) ==6025== by 0x4FEA6EF: listen_thread (rpc_transport.c:132) ==6025== by 0x7BC8023F: ??? (signal_i386.c:2682) ==6025== by 0x7BC80286: call_thread_func (signal_i386.c:2741) ==6025== by 0x7BC8021D: ??? (signal_i386.c:2682) ==6025== by 0x7BC8726D: start_thread (thread.c:443) ==6025== by 0x4214EFA: start_thread (pthread_create.c:309) ==6025== by 0x431362D: clone (clone.S:129) ==6025==
https://bugs.winehq.org/show_bug.cgi?id=38440
--- Comment #1 from Austin English austinenglish@gmail.com --- Also seen in itemdlg: ==6055== 28 bytes in 1 blocks are definitely lost in loss record 255 of 1,238 ==6055== at 0x7BC49E0E: notify_alloc (heap.c:254) ==6055== by 0x7BC4E044: RtlAllocateHeap (heap.c:1715) ==6055== by 0x7BC43059: alloc_fileio (file.c:381) ==6055== by 0x7BC45096: server_ioctl_file (file.c:1404) ==6055== by 0x7BC45A43: NtFsControlFile (file.c:1684) ==6055== by 0x7B872671: ConnectNamedPipe (sync.c:1615) ==6055== by 0x4FEA6EF: listen_thread (rpc_transport.c:132) ==6055== by 0x7BC8023F: ??? (signal_i386.c:2682) ==6055== by 0x7BC80286: call_thread_func (signal_i386.c:2741) ==6055== by 0x7BC8021D: ??? (signal_i386.c:2682) ==6055== by 0x7BC8726D: start_thread (thread.c:443) ==6055== by 0x4214EFA: start_thread (pthread_create.c:309) ==6055== by 0x431362D: clone (clone.S:129) ==6055==
and several other tests, it seems..
https://bugs.winehq.org/show_bug.cgi?id=38440
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|dank@kegel.com |
https://bugs.winehq.org/show_bug.cgi?id=38440
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Debian
https://bugs.winehq.org/show_bug.cgi?id=38440
--- Comment #2 from Austin English austinenglish@gmail.com --- A similar bug in programs/wscript/tests/run.c: ==20417== 28 bytes in 1 blocks are definitely lost in loss record 68 of 325 ==20417== at 0x7BC49E0E: notify_alloc (heap.c:254) ==20417== by 0x7BC4E044: RtlAllocateHeap (heap.c:1715) ==20417== by 0x7BC43059: alloc_fileio (file.c:381) ==20417== by 0x7BC45096: server_ioctl_file (file.c:1404) ==20417== by 0x7BC45A43: NtFsControlFile (file.c:1684) ==20417== by 0x7B872671: ConnectNamedPipe (sync.c:1615) ==20417== by 0x48CE7D3: local_server_thread (rpc.c:1917) ==20417== by 0x7BC8023F: ??? (signal_i386.c:2682) ==20417== by 0x7BC80286: call_thread_func (signal_i386.c:2741) ==20417== by 0x7BC8021D: ??? (signal_i386.c:2682) ==20417== by 0x7BC8726D: start_thread (thread.c:443) ==20417== by 0x4214EFA: start_thread (pthread_create.c:309) ==20417== by 0x431362D: clone (clone.S:129) ==20417==
https://bugs.winehq.org/show_bug.cgi?id=38440
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
--- Comment #3 from Sebastian Lackner sebastian@fds-team.de --- I've looked at the problem in wscript and there is nothing to fix. Valgrind thinks the memory is lost because there is no pointer to the allocated memory in the process itself, but the wineserver still has a pointer (because of the queued APC). So basically a limitation of Valgrind.
I am not sure whats the best way to get rid of these warnings, blacklisting them all manually seems a bit complicated, and similar problems might also occur in ws2_32 with async io structures. On the other hand, updating something like a linked list with pending async IOs is a bit complicated, when it just has the purpose to make Valgrind happy. Anyone has a better idea?