https://bugs.winehq.org/show_bug.cgi?id=38417
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Component|-unknown |kernel32 Summary|[EA] Origin self-updater |[EA] Origin self-updater |fails to install updates |fails to install updates | |('kernel32.DeleteFileW' | |shall only open the file | |for delete access as | |callers might not have | |read/write rights)
--- Comment #13 from Anastasius Focht focht@gmx.net --- Hello folks,
--- quote --- a detailed analysis and a suggested patch will come soon. --- quote ---
It seems the first part got lost ;-)
Adding logs/trace for completeness here.
App log file 'UpdateTool_Log.txt':
--- snip --- [2015/7/30 20:7:18.508] Starting ; Update System 2 ; UpdateTool v9.7.2.53208 [2015/7/30 20:7:18.509] Mutex acquired. [2015/7/30 20:7:18.509] Registry operations [2015/7/30 20:7:18.510] Setting ProgramData permissions succeeded [2015/7/30 20:7:18.516] Origin running at: C:\Program Files (x86)\Origin\Origin.exe [2015/7/30 20:7:18.516] Found Origin folder: C:\Program Files (x86)\Origin\ [2015/7/30 20:7:18.516] SelfUpdate data location: C:\users\Public\Application Data\Origin\SelfUpdate\StagedUpdate\ [2015/7/30 20:7:18.521] Found valid update data. [2015/7/30 20:7:18.521] Set origin folder permissions [2015/7/30 20:7:18.521] Open permissions for: C:\Program Files (x86)\Origin\ [2015/7/30 20:7:18.521] Permissions modified successfully. [2015/7/30 20:7:18.562] FILE_ATTRIBUTE_ARCHIVE: C:\Program Files (x86)\Origin\EACore_App.ini. Last error: [32] [2015/7/30 20:7:18.563] SetFileAttributes failed.. Last error: [0] [2015/7/30 20:7:18.563] Attempting deletion operation: C:\Program Files (x86)\Origin\EACore_App.ini. Number of times: [1]. Last error: [0] [2015/7/30 20:7:18.613] FILE_ATTRIBUTE_ARCHIVE: C:\Program Files (x86)\Origin\EACore_App.ini. Last error: [32] [2015/7/30 20:7:18.614] SetFileAttributes failed.. Last error: [0] ... [2015/7/30 20:9:53.601] Attempting deletion operation: C:\Program Files (x86)\Origin\EACore_App.ini. Number of times: [200]. Last error: [0] [2015/7/30 20:9:53.653] Deletion operation FAILED for : C:\Program Files (x86)\Origin\EACore_App.ini. Number of times: [200]. Last error: [0] --- snip ---
Relevant part of trace log (+server to make it obvious):
--- snip --- ... 0032:Call KERNEL32.SetFileAttributesW(0042b5b0 L"C:\Program Files (x86)\Origin\EACore_App.ini",00000080) ret=0040e04a 0032:trace:ntdll:FILE_CreateFile handle=0x33d780 access=00000000 name=L"\??\C:\Program Files (x86)\Origin\EACore_App.ini" objattr=00000040 root=(nil) sec=(nil) io=0x33d784 alloc_size=(nil) attr=00000000 sharing=00000000 disp=1 options=00000020 ea=(nil).0x00000000 0032: create_file( access=00000000, attributes=00000040, sharing=00000000, create=1, options=00000020, attrs=00000000, objattr={rootdir=0000,sd={},name=L""}, filename="/home/focht/wine-games/wineprefix-ea-origin/dosdevices/c:/Program Files (x86)/Origin/EACore_App.ini" ) 0032: create_file() = 0 { handle=01f8 } 0032:trace:ntdll:NtSetInformationFile (0x1f8,0x33d784,0x33d758,0x00000028,0x00000004) 0032: get_handle_fd( handle=01f8 ) 0032: *fd* 01f8 -> 334 0032: get_handle_fd() = 0 { type=1, cacheable=1, access=00000000, options=00000020 } 0032: close_handle( handle=01f8 ) 0032: close_handle() = 0 0032:Ret KERNEL32.SetFileAttributesW() retval=00000001 ret=0040e04a 0032:Call KERNEL32.CreateFileW(0042b5b0 L"C:\Program Files (x86)\Origin\EACore_App.ini",c0000000,00000004,00000000,00000003,00000080,00000000) ret=0040e09e 0032:trace:ntdll:FILE_CreateFile handle=0x33d718 access=c0000000 name=L"\??\C:\Program Files (x86)\Origin\EACore_App.ini" objattr=00000040 root=(nil) sec=(nil) io=0x33d71c alloc_size=(nil) attr=00000080 sharing=00000004 disp=1 options=00000060 ea=(nil).0x00000000 0032: create_file( access=c0000000, attributes=00000040, sharing=00000004, create=1, options=00000060, attrs=00000080, objattr={rootdir=0000,sd={},name=L""}, filename="/home/focht/wine-games/wineprefix-ea-origin/dosdevices/c:/Program Files (x86)/Origin/EACore_App.ini" ) 0032: create_file() = 0 { handle=01f8 } 0032:Ret KERNEL32.CreateFileW() retval=000001f8 ret=0040e09e ... 0032:Call KERNEL32.DeleteFileW(004308c0 L"C:\Program Files (x86)\Origin\EACore_App.ini") ret=0040bc28 0032:trace:ntdll:FILE_CreateFile handle=0x33d728 access=c0010000 name=L"\??\C:\Program Files (x86)\Origin\EACore_App.ini" objattr=00000040 root=(nil) sec=(nil) io=0x33d720 alloc_size=(nil) attr=00000000 sharing=00000007 disp=1 options=00001040 ea=(nil).0x00000000 0032: create_file( access=c0010000, attributes=00000040, sharing=00000007, create=1, options=00001040, attrs=00000000, objattr={rootdir=0000,sd={},name=L""}, filename="/home/focht/wine-games/wineprefix-ea-origin/dosdevices/c:/Program Files (x86)/Origin/EACore_App.ini" ) 0032: create_file() = SHARING_VIOLATION { handle=0000 } 0032:Ret KERNEL32.DeleteFileW() retval=00000000 ret=0040bc28 0032:Call KERNEL32.GetLastError() ret=0040bc3a 0032:Ret KERNEL32.GetLastError() retval=00000020 ret=0040bc3a 0032:Call KERNEL32.GetFileAttributesW(004308c0 L"C:\Program Files (x86)\Origin\EACore_App.ini") ret=00409f51 0032:Ret KERNEL32.GetFileAttributesW() retval=00000020 ret=00409f51 ... 0048:Call gdi32.TextOutW(0016002e,00000000,00000180,00148e88 L"Deletion operation FAILED for : C:\Program Files (x86)\Origin\EACore_App.ini \0099",00000050) ret=7ed3f5c5 ... 0032:Call KERNEL32.CloseHandle(000001f8) ret=0040e6ca 0032: close_handle( handle=01f8 ) 0032: close_handle() = 0 0032:Ret KERNEL32.CloseHandle() retval=00000001 ret=0040e6ca ... --- snip ---
$ wine --version wine-1.7.48-30-g5bd9d58
Regards