http://bugs.winehq.org/show_bug.cgi?id=26889
Summary: wineserver loses fd_ops in debugging interface. Product: Wine Version: unspecified Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wineserver AssignedTo: wine-bugs@winehq.org ReportedBy: wine@mkarcher.dialup.fu-berlin.de
Created an attachment (id=34287) --> (http://bugs.winehq.org/attachment.cgi?id=34287) backtrace of the crash in wineserver
Since commit commit 900352bc6bd32c6524658083339ba119620be9c7 Author: Alexandre Julliard julliard@winehq.org Date: Mon Apr 18 14:14:40 2011 +0200
server: Store a mapping instead of a file for process dlls.
the dlls of a process posses a mapping instead of the original file object. The consequence is that the only info about the fd is the the one contained in mapping->fd, which is created by dup_fd_object. This copy does not include fd_ops. Since commit commit 1b868f4967f2dadd1d12b2b0fc5a14f9c5766ab4 Author: Alexandre Julliard julliard@winehq.org Date: Tue Apr 19 10:29:44 2011 +0200
server: Fix sharing parameters for debug event files, and don't fail if the file can't be opened.
this causes a crash in wineserver if programs are executed in the Borland Delphi debugger. This is because the "hFile" object returned in the debugging event refers to duplicate (again created by dup_fd_object) of mapping->fd. Borland Delphi then tries to use SetFilePointer() and ReadFile() on that object, and at that time, wineserver dereferences the NULL fd_ops in the fd object and crashes.