http://bugs.winehq.com/show_bug.cgi?id=1736
Summary: Unable to create temp directory Product: Wine Version: 20030911 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-files AssignedTo: [email protected] ReportedBy: [email protected]
Hi,
There seems to be a bug in the latest release (Wine 20030911) concerning creation of temp directories:
I am trying the Xilinx Webpack6.1i, and when I try to create a new project, I get this message:
Unable to create temp directory 'C:\TEMP\xil0904.tmp'
----------------------------------------------------- My C:\TEMP exists and has the correct permissions [wine] "Temp" = "c:\temp" [Drive C] "Path" = "/local/home/wim/c"
----------------------------------------------------- And the application has created a 0 byte file with the correct name:
[wim@garbo c]$ ls -l /local/home/wim/c/temp/ total 0 -rw-r--r-- 1 wim staff 0 Sep 25 16:22 xil0904.tmp
----------------------------------------------------- I turned on all relevant debugging flags, and this is the result:
0016:Call ntdll.GetTempFileNameA(425f0060 "C:\TEMP",408528a0 "xil_21_",00000000,4085269c) ret=40e1abc7 trace:file:CreateFileW L"C:\TEMP\xil0904.tmp" GENERIC_WRITE CREATE_NEW attributes 0x80 trace:dosfs:DOSFS_GetFullName L"C:\TEMP\xil0904.tmp" (last=0) trace:dosfs:DOSFS_FindUnixName /local/home/wim/c,L"TEMP\xil0904.tmp" trace:dosfs:DOSFS_OpenDir "/local/home/wim/c" trace:dosfs:DOSFS_FindUnixName (/local/home/wim/c,L"TEMP\xil0904.tmp") -> L"temp" (L"TEMP") trace:dosfs:DOSFS_FindUnixName /local/home/wim/c/temp,L"xil0904.tmp" trace:dosfs:DOSFS_OpenDir "/local/home/wim/c/temp" warn:dosfs:DOSFS_FindUnixName L"xil0904.tmp" not found in '/local/home/wim/c/temp' trace:dosfs:DOSFS_GetFullName returning /local/home/wim/c/temp/xil0904.tmp = L"C:\TEMP\xil0904.tmp" trace:dosfs:GetDriveTypeW (L"C:\TEMP\xil0904.tmp") trace:file:CreateFileW returning 0x200 trace:file:FILE_GetTempFileName created L"C:\TEMP\xil0904.tmp" trace:dosfs:DOSFS_GetFullName L"C:\TEMP\xil0904.tmp" (last=0) trace:dosfs:DOSFS_FindUnixName /local/home/wim/c,L"TEMP\xil0904.tmp" trace:dosfs:DOSFS_OpenDir "/local/home/wim/c" trace:dosfs:DOSFS_FindUnixName (/local/home/wim/c,L"TEMP\xil0904.tmp") -> L"temp" (L"TEMP") trace:dosfs:DOSFS_FindUnixName /local/home/wim/c/temp,L"xil0904.tmp" trace:dosfs:DOSFS_OpenDir "/local/home/wim/c/temp" trace:dosfs:DOSFS_FindUnixName (/local/home/wim/c/temp,L"xil0904.tmp") -> L"xil0904.tmp" (L"XIL0904.TMP") trace:dosfs:DOSFS_GetFullName returning /local/home/wim/c/temp/xil0904.tmp = L"C:\TEMP\XIL0904.TMP" trace:file:FILE_GetTempFileName returning L"C:\TEMP\xil0904.tmp" 0016:Ret ntdll.GetTempFileNameA() retval=00000904 ret=40e1abc7 0016:Call ntdll.RtlAllocateHeap(40520000,00000000,00000014) ret=40e1cf24 0016:Ret ntdll.RtlAllocateHeap() retval=42d6a5b8 ret=40e1cf24 0016:Ret msvcrt._tempnam() retval=42d6a5b8 ret=40cde38d 0016:Call ntdll.lstrlenA(428c0258 "C:/TEMP/xil0904.tmp") ret=73dd248f 0016:Ret ntdll.lstrlenA() retval=00000013 ret=73dd248f 0016:Call ntdll.lstrlenA(428c0258 "C:\TEMP\xil0904.tmp") ret=73dd248f 0016:Ret ntdll.lstrlenA() retval=00000013 ret=73dd248f 0016:Call msvcrt._mkdir(428c0258 "C:\TEMP\xil0904.tmp") ret=40cddfe4 0016:Call ntdll.CreateDirectoryA(428c0258 "C:\TEMP\xil0904.tmp",00000000) ret=40e1577a trace:file:CreateDirectoryW (L"C:\TEMP\xil0904.tmp",(nil)) trace:dosfs:DOSFS_GetFullName L"C:\TEMP\xil0904.tmp" (last=0) trace:dosfs:DOSFS_FindUnixName /local/home/wim/c,L"TEMP\xil0904.tmp" trace:dosfs:DOSFS_OpenDir "/local/home/wim/c" trace:dosfs:DOSFS_FindUnixName (/local/home/wim/c,L"TEMP\xil0904.tmp") -> L"temp" (L"TEMP") trace:dosfs:DOSFS_FindUnixName /local/home/wim/c/temp,L"xil0904.tmp" trace:dosfs:DOSFS_OpenDir "/local/home/wim/c/temp" trace:dosfs:DOSFS_FindUnixName (/local/home/wim/c/temp,L"xil0904.tmp") -> L"xil0904.tmp" (L"XIL0904.TMP") trace:dosfs:DOSFS_GetFullName returning /local/home/wim/c/temp/xil0904.tmp = L"C:\TEMP\XIL0904.TMP" warn:file:CreateDirectoryW Error 'File exists' trying to create directory '/local/home/wim/c/temp/xil0904.tmp' -----------------------------------------------------
The relevant lines seem to me:
trace:file:FILE_GetTempFileName created L"C:\TEMP\xil0904.tmp" 0016:Call ntdll.CreateDirectoryA(428c0258 "C:\TEMP\xil0904.tmp",00000000) ret=40e1577a trace:file:CreateDirectoryW (L"C:\TEMP\xil0904.tmp",(nil)) warn:file:CreateDirectoryW Error 'File exists' trying to create directory '/local/home/wim/c/temp/xil0904.tmp'
What seems to happen is this: a temp file gets created, and this file makes it impossible for the temp directory to be created. Any way to get around this/patch this?
Thanks,
Wim