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
---------------------------------------------------------