Re: ntdll: Do not segfault with snoop for files with a broken exporttable
"Detlef Riekenberg" <wine.dev(a)web.de> wrote:
ntdll: Do not segfault with snoop for files with a broken export table
+ /* Check for files with broken exports */ + if (exports->Characteristics || + exports->MajorVersion || + HIWORD(exports->NumberOfFunctions) || + HIWORD(exports->NumberOfNames)) { + WARN_(snoop)("snoop disabled for bad module %p: 0x%x, %u, 0x%x, 0x%x\n", hmod, + exports->Characteristics, exports->MajorVersion, + exports->NumberOfFunctions, exports->NumberOfNames); + return; + } + TRACE_(snoop)("hmod=%p, name=%s\n", hmod, name);
It's still helpful to see the line "hmod=%p, name=%s\n" in the log before an error message. -- Dmitry.
On So, 2007-09-09 at 13:02 +0900, Dmitry Timoshkov wrote:
"Detlef Riekenberg" <wine.dev(a)web.de> wrote:
ntdll: Do not segfault with snoop for files with a broken export table
+ /* Check for files with broken exports */ + if (exports->Characteristics || + exports->MajorVersion || + HIWORD(exports->NumberOfFunctions) || + HIWORD(exports->NumberOfNames)) { + WARN_(snoop)("snoop disabled for bad module %p: 0x%x, %u, 0x%x, 0x%x\n", hmod, + exports->Characteristics, exports->MajorVersion, + exports->NumberOfFunctions, exports->NumberOfNames); + return; + } + TRACE_(snoop)("hmod=%p, name=%s\n", hmod, name);
It's still helpful to see the line "hmod=%p, name=%s\n" in the log before an error message.
Wine crash in the TRACE, because name is not a valid pointer. The affected module is part of the WARN - output. A GetModuleFileName for hmod can be done, but is that really needed? The affected module is an exe, so deactivating snoop is not a Problem. -- By by ... Detlef
participants (2)
-
Detlef Riekenberg -
Dmitry Timoshkov