[Bug 1736] New: Unable to create temp directory

Wine Bugs wine-bugs at winehq.com
Fri Sep 26 03:56:37 CDT 2003


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: wine-bugs at winehq.com
        ReportedBy: wim at motherearth.org


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

-- 
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list