ntdll: Do not segfault with snoop for files with a broken exporttable

Detlef Riekenberg wine.dev at web.de
Mon Sep 10 10:30:29 CDT 2007


On So, 2007-09-09 at 13:02 +0900, Dmitry Timoshkov wrote:
> "Detlef Riekenberg" <wine.dev at 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





More information about the wine-devel mailing list