Hallo,
I am trying to track down some (for me ) strange problems. The installer swcadiii.exe from www.linear-tech.com-> Software->Switchercad aborts, reporting some problem with gunzip. I think this is caused by _fclose reporting the EOF error. I instrumented dlls/msvcrt/file.c like
/********************************************************************* * fclose (MSVCRT.@) */ int MSVCRT_fclose(MSVCRT_FILE* file) { int r; r=_close(file->_file); TRACE("r 0x%08x flag 0x%08x %s\n",r, file->_flag, (file->_flag & MSVCRT__IOERR)?"MSVCRT__IOERR":""); return ((r==MSVCRT_EOF) || (file->_flag & MSVCRT__IOERR) ? MSVCRT_EOF :0); }
While the trace in line 321037 shows that MSVCRT__IOERR is not set, the return value implies that MSVCRT__IOERR is set.
I run on a dual celeron. Is msvcrt perhaps not thread safe?
Bye
321020 088f9528:Call msvcrt.fclose(403de320) ret=00409ba6 321021 08072e40:Ret kernel32.LOCAL_Lock() retval=4038c85e ret=4083eb89 321022 trace:msvcrt:_close :fd (3) handle (96) 321023 08072e40:Call ntdll.RtlAllocateHeap(40380000,00000000,0000001c) ret=408442b8 321024 088f9528:Call ntdll.RtlFreeHeap(40380000,00000000,403de320) ret=4072b2b5 321025 08072e40:Ret ntdll.RtlAllocateHeap() retval=403de370 ret=408442b8 321026 088f9528:Ret ntdll.RtlFreeHeap() retval=00000001 ret=4072b2b5 321027 08072e40:Call ntdll.RtlAllocateHeap(40380000,00000000,00000020) ret=408442d5 321028 trace:msvcrt:msvcrt_free_fd :fd (3) freed 321029 08072e40:Ret ntdll.RtlAllocateHeap() retval=403de320 ret=408442d5 321030 088f9528:Call kernel32.CloseHandle(00000060) ret=4072730d 321031 08072e40:Call kernel32.LOCAL_Unlock(000001e7,0000119a) ret=4083f0b1 321032 08072e40:Ret kernel32.LOCAL_Unlock() retval=00000000 ret=4083f0b1 321033 088f9528:Ret kernel32.CloseHandle() retval=00000001 ret=4072730d 321034 08072e40:Call kernel32.LOCAL_Lock(000001e7,0000119a) ret=4083ef6a 321035 trace:msvcrt:_close :ok 321036 08072e40:Ret kernel32.LOCAL_Lock() retval=4038c85e ret=4083ef6a 321037 trace:msvcrt:MSVCRT_fclose r 0x00000000 flag 0x00000011 321038 08072e40:Call kernel32.LOCAL_Unlock(000001e7,0000119a) ret=4083f0b1 321039 088f9528:Ret msvcrt.fclose() retval=ffffffff ret=00409ba6