Alex, > That might be a problem. It would be better if you could compile the > latest snapshot, or even better, the latest CVS, from scratch. This > would enable you to test any patches I (or somebody else) might send to > try and fix the problem.
OK, I will do it then! But I will have to learn a bit on how to use subversion trhough our autenticated squid proxy. It will take some hours (or days 8-/). As soon as I get a local snapshot working I will post a message again (also after reporting the bug) > >>I also noticed I can do something like: >> WINEDUBUG=+all winebdg user.exe >> >>Are you interested in the output of the above? Winedbg does not segfault. >>It freezes. >> >> >> >It should be WINEDEBUG=+all, not WINEDUBUG... might be the problem. Sorry! Just a typo .... I meant WINEDEBUG .... > However, the debug trace was useful by itself. > >The last lines of your trace show the following: > >0009:Call ntdll.RtlImageNtHeader(00000000) ret=7fce61da >0009: *killed* exit_code=0 > >This is bad - RtlImageNtHeader should be supplied a non-NULL pointer, >and somebody passed it a NULL one instead. In addition, it seems there >is an issue with the exception handling in RtlImageNtHeader > > From dlls/ntdll/loader.c: > >/*********************************************************************** > * RtlImageNtHeader (NTDLL.@) >*/ >PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) >{ > IMAGE_NT_HEADERS *ret; > > __TRY > { > IMAGE_DOS_HEADER *dos = (IMAGE_DOS_HEADER *)hModule; > > ret = NULL; > if (dos->e_magic == IMAGE_DOS_SIGNATURE) > { > ret = (IMAGE_NT_HEADERS *)((char *)dos + dos->e_lfanew); > if (ret->Signature != IMAGE_NT_SIGNATURE) ret = NULL; > } > } > __EXCEPT_PAGE_FAULT > { > return NULL; > } > __ENDTRY > return ret; >} > >The exception handler is supposed to return NULL in case of a page fault >(such as trying to access a NULL pointer, as is your case). However, I >think I saw a discussion somewhere in wine-devel that advised *not* to >return from inside an __EXCEPT clause of an exception handler in Wine >(most probably because __ENDTRY needs to run in order to clean up). If >this is true, then RtlImageNtHeader is violating this rule. Your >segmentation fault might be the expected result of a violation of the >return rule. Could anybody in wine-devel speak up to confirm or refute >this observation about exception handlers? > >This, of course, does not address the actual issue of passing a NULL >pointer to RtlImageNtHeader(). I could make a set of patches to add >TRACEs to all functions with uses of RtlImageNtHeader(), but you need to >be able to apply the patches for them to be actually of use. > >Alex VillacĂs Lasso I will be working on setting up an environment to apply the patches. Just wait some time in order to me to work on some issues I would have ... Thanks. --------------------------------------------------------- Ulisses de Sousa Penna Analista Consultor - Banco do Brasil Fone: +55-61-3310-6320 Fax: +55-61-3310-6435 ---------------------------------------------------------