[Bug 35452] New: Warhammer 40,000: Dawn of War II: does not start, unhandled exception
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun Jan 26 04:41:57 CST 2014
http://bugs.winehq.org/show_bug.cgi?id=35452
Bug ID: 35452
Summary: Warhammer 40,000: Dawn of War II: does not start,
unhandled exception
Product: Wine
Version: 1.7.11
Hardware: x86
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs at winehq.org
Reporter: marc.bessieres at gmail.com
Classification: Unclassified
Created attachment 47319
--> http://bugs.winehq.org/attachment.cgi?id=47319
The console output
I use, on opensuse 13.1
~/> wine --version
wine-1.7.11
I used winetricks to by pass bug Bug 23532
winetricks xlive msasn1
and I disabled dwrite to be able to see some fonts to register on Steam as
stated in appdb
https://appdb.winehq.org/objectManager.php?sClass=version&iId=19444
Then when I launch the game within Steam I have after a few seconds a box to
send data/files to the provider.
I don't see anything in the terminal output that would explain (to me) the
reason of the error.
Log of the crash handler shows an exception unhandled
drive_c/users/guest/Temp:
total used in directory 16876 available 34674068
drwxr-xr-x 2 guest users 4096 20 janv. 21:39 .
-rw-r--r-- 1 guest users 4658 20 janv. 21:03 bugsplat.log
-rw-r--r-- 1 guest users 1143106 20 janv. 21:03 DOW2UUCD10N0.dmp
tail bugsplat.log
2014-01-20 21:03:43 Entered Unhandled Exception Filter
2014-01-20 21:03:48 Minidump file successfully saved
C:\users\guest\Temp\DOW2UUCD10N0.dmp
2014-01-20 21:03:48 Launching BsSndRpt.exe
"BsSndRpt.exe" /i "C:\users\guest\Temp\BsSndRpt.ini"
In addition in :
My Games/Dawn of War 2/Logfiles:
total used in directory 16 available 34674016
-rw-r--r-- 1 guest users 1028 20 janv. 21:08 warnings.txt
I found:
21:08:32.23 -- DOW2 Warnings Log --
21:08:32.23 C:\Program Files (x86)\Steam\SteamApps\common\Dawn of War
2\DOW2.exe started at 2014-01-20 21:08
21:08:32.23 OS NT 5.1, 3958 MB Physical Memory, 1685 Mb Physical Available,
4096 Mb Virtual Available
21:08:32.25 RUN OPTIONS: -logs
21:08:32.25 WORKING DIR: 'C:\Program Files (x86)\Steam\SteamApps\common\Dawn
of War 2'
21:08:32.25 USER: 'guest'
21:08:32.29 MOD -- Initializing mod 'DOW2', version '2.6.0', locale
'french'.
21:08:32.33 APP - Multi-threading Enabled
21:08:32.33 XTHREAD: Detected 8 core(s) with 8 hardware thread(s)
21:08:32.34 ParentalControls: Games Explorer found.
21:08:32.34 ParentalControls: Module found.
21:08:32.34 ParentalControls: Dawn of War II IGameExplorer::VerifyAccess()
call succeeded (0x00000000).
21:08:32.34 ParentalControls: Dawn of War II access granted.
21:08:32.75 MOD -- Failed to verify content catalog integrity.
21:08:32.75 Content management system isn't properly initialized.
This fits the text in the appdb of the "retribution" expansion pack of DoW2
http://appdb.winehq.org/objectManager.php?sClass=version&iId=22942&iTestingId=81599
This seems to indicate a wintrust issue. As there is no winetricks for it, I
tried to trace it with:
WINEDEBUG=+relay,+wintrust wine Steam.exe 2>&1 | tee logfile
And it showed a few lines before opening the log file named bugsplat.log, a
call to CryptCATOpen:
002d:Call wintrust.CryptCATOpen(0033e784 L"C:\\Program Files
(x86)\\Steam\\SteamApps\\common\\Dawn of War
2\\content.cat",00000002,001c3500,00000000,00000000) ret=00734750
trace:wintrust:CryptCATOpen L"C:\\Program Files
(x86)\\Steam\\SteamApps\\common\\Dawn of War 2\\content.cat", 2, 1c3500, 0, 0
002d:Call KERNEL32.CreateFileW(0033e784 L"C:\\Program Files
(x86)\\Steam\\SteamApps\\common\\Dawn of War
2\\content.cat",80000000,00000001,00000000,00000007,00000000,00000000)
ret=7dcf72f9
002d:Ret KERNEL32.CreateFileW() retval=ffffffff ret=7dcf72f9
002d:Ret wintrust.CryptCATOpen() retval=ffffffff ret=00734750
002d:Call ntdll.RtlFreeHeap(06272000,00000000,0627c268) ret=003e82f1
002d:Ret ntdll.RtlFreeHeap() retval=00000001 ret=003e82f1
002d:Call KERNEL32.GetLastError() ret=78132dba
002d:Ret KERNEL32.GetLastError() retval=00000057 ret=78132dba
002d:Call KERNEL32.GetLastError() ret=78132dba
002d:Ret KERNEL32.GetLastError() retval=00000057 ret=78132dba
002d:Call KERNEL32.GetSystemTimeAsFileTime(0033f270) ret=7818114c
002d:Ret KERNEL32.GetSystemTimeAsFileTime() retval=01cf1618 ret=7818114c
0048:Ret KERNEL32.WaitForSingleObject() retval=00000102 ret=3f01037b
002d:Call KERNEL32.GetLastError() ret=78132dba
002d:Ret KERNEL32.GetLastError() retval=00000057 ret=78132dba
0048:Call KERNEL32.WaitForSingleObject(000002c8,00000000) ret=3f01037b
002d:Call KERNEL32.WriteFile(0000023c,0033f790,00000041,0033f2ec,00000000)
ret=0153bdf8
0048:Ret KERNEL32.WaitForSingleObject() retval=00000102 ret=3f01037b
002d:Ret KERNEL32.WriteFile() retval=00000001 ret=0153bdf8
0048:Call KERNEL32.WaitForSingleObject(000003c4,00000000) ret=3f01037b
002d:Call KERNEL32.WriteFile(0000023c,0033f31c,00000002,0033f314,00000000)
ret=0153bdf8
002d:Ret KERNEL32.WriteFile() retval=00000001 ret=0153bdf8
002d:Call KERNEL32.GetLastError() ret=78132dba
002d:Ret KERNEL32.GetLastError() retval=00000057 ret=78132dba
002d:Call KERNEL32.GetLastError() ret=78132dba
002d:Ret KERNEL32.GetLastError() retval=00000057 ret=78132dba
0048:Ret KERNEL32.WaitForSingleObject() retval=00000102 ret=3f01037b
002d:Call KERNEL32.GetSystemTimeAsFileTime(0033f330) ret=7818114c
002d:Ret KERNEL32.GetSystemTimeAsFileTime() retval=01cf1618 ret=7818114c
0048:Call KERNEL32.WaitForSingleObject(000003c4,00000000) ret=3f01037b
002d:Call KERNEL32.GetLastError() ret=78132dba
002d:Ret KERNEL32.GetLastError() retval=00000057 ret=78132dba
002d:Call KERNEL32.WriteFile(0000023c,0033f850,00000044,0033f3ac,00000000)
ret=0153bdf8
0048:Ret KERNEL32.WaitForSingleObject() retval=00000102 ret=3f01037b
002d:Ret KERNEL32.WriteFile() retval=00000001 ret=0153bdf8
0048:Call KERNEL32.WaitForSingleObject(00000434,00000000) ret=3f01037b
002d:Call KERNEL32.WriteFile(0000023c,0033f3dc,00000002,0033f3d4,00000000)
ret=0153bdf8
002d:Ret KERNEL32.WriteFile() retval=00000001 ret=0153bdf8
0048:Ret KERNEL32.WaitForSingleObject() retval=00000102 ret=3f01037b
0048:Call KERNEL32.WaitForSingleObject(00000434,00000000) ret=3f01037b
002d:Call KERNEL32.GetLastError() ret=78132dba
002d:Ret KERNEL32.GetLastError() retval=00000057 ret=78132dba
002d:Call KERNEL32.UnhandledExceptionFilter(0033f7b8) ret=7bc974c5
0048:Ret KERNEL32.WaitForSingleObject() retval=00000102 ret=3f01037b
002d:Call KERNEL32.InterlockedExchange(10037e34,10000000) ret=10004fe0
0048:Call KERNEL32.WaitForSingleObject(0000044c,00000000) ret=3f01037b
002d:Ret KERNEL32.InterlockedExchange() retval=10000000 ret=10004fe0
002d:Call KERNEL32.GetSystemTimeAsFileTime(0033f52c) ret=1000c08a
002d:Ret KERNEL32.GetSystemTimeAsFileTime() retval=01cf1618 ret=1000c08a
002d:Call KERNEL32.GetLastError() ret=10012c58
002d:Ret KERNEL32.GetLastError() retval=00000057 ret=10012c58
002d:Call KERNEL32.GetLastError() ret=10012c58
002d:Ret KERNEL32.GetLastError() retval=00000057 ret=10012c58
0048:Ret KERNEL32.WaitForSingleObject() retval=00000102 ret=3f01037b
002d:Call KERNEL32.GetLastError() ret=10012c58
002d:Ret KERNEL32.GetLastError() retval=00000057 ret=10012c58
0048:Call KERNEL32.WaitForSingleObject(0000044c,00000000) ret=3f01037b
002d:Call KERNEL32.GetTimeZoneInformation(10038250) ret=10014da3
0048:Ret KERNEL32.WaitForSingleObject() retval=00000102 ret=3f01037b
0048:Call KERNEL32.WaitForSingleObject(0000050c,00000000) ret=3f01037b
002d:Ret KERNEL32.GetTimeZoneInformation() retval=00000001 ret=10014da3
0048:Ret KERNEL32.WaitForSingleObject() retval=00000102 ret=3f01037b
002d:Call KERNEL32.WideCharToMultiByte(00000000,00000000,10038254 L"Central
Europe Standard Time",ffffffff,10034d08,0000003f,00000000,0033f4a4)
ret=10014e1d
0048:Call KERNEL32.WaitForSingleObject(0000050c,00000000) ret=3f01037b
002d:Ret KERNEL32.WideCharToMultiByte() retval=0000001d ret=10014e1d
002d:Call KERNEL32.WideCharToMultiByte(00000000,00000000,100382a8 L"Central
Europe Daylight Time",ffffffff,10034d48,0000003f,00000000,0033f4a4)
ret=10014e51
002d:Ret KERNEL32.WideCharToMultiByte() retval=0000001d ret=10014e51
002d:Call KERNEL32.GetLastError() ret=10012c58
0048:Ret KERNEL32.WaitForSingleObject() retval=00000102 ret=3f01037b
002d:Ret KERNEL32.GetLastError() retval=00000057 ret=10012c58
002d:Call KERNEL32.GetTempPathA(00000104,0033f590) ret=1000507c
002d:Ret KERNEL32.GetTempPathA() retval=00000014 ret=1000507c
0048:Call KERNEL32.QueryPerformanceCounter(0208e480) ret=3f00e506
002d:Call shlwapi.PathAppendA(0033f590 "C:\\users\\guest\\Temp\\",1002c794
"bugsplat.log") ret=1000508b
0048:Ret KERNEL32.QueryPerformanceCounter() retval=00000001 ret=3f00e506
And then I found the following extract from wiki.winehq.org/Wintrust:
CryptCATOpen attempts to get the attribute cert portions of the catalog file,
which is a CMS signed message containing a CTL. Attribute certs are
unimplemented in Crypt32, so this is essentially dead code at the moment.
So I would imagine it comes from an issue in CryptCATOpen.
In addition when I look at the code, I see that In CryptCATOpen there should
have been more than only a call to CreateFileW (line 866)
842 * CryptCATOpen (WINTRUST.@)
843 */
844 HANDLE WINAPI CryptCATOpen(LPWSTR pwszFileName, DWORD fdwOpenFlags,
HCRYPTPROV hProv,
845 DWORD dwPublicVersion, DWORD dwEncodingType)
846 {
847 HANDLE file, hmsg;
848 BYTE *buffer = NULL;
849 DWORD size, flags = OPEN_EXISTING;
850 struct cryptcat *cc;
851
852 TRACE("%s, %x, %lx, %x, %x\n", debugstr_w(pwszFileName), fdwOpenFlags,
853 hProv, dwPublicVersion, dwEncodingType);
854
855 if (!pwszFileName)
856 {
857 SetLastError(ERROR_INVALID_PARAMETER);
858 return INVALID_HANDLE_VALUE;
859 }
860
861 if (!dwEncodingType) dwEncodingType = X509_ASN_ENCODING |
PKCS_7_ASN_ENCODING;
862
863 if (fdwOpenFlags & CRYPTCAT_OPEN_ALWAYS) flags |= OPEN_ALWAYS;
864 if (fdwOpenFlags & CRYPTCAT_OPEN_CREATENEW) flags |= CREATE_NEW;
865
866 file = CreateFileW(pwszFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
flags, 0, NULL);
867 if (file == INVALID_HANDLE_VALUE) return INVALID_HANDLE_VALUE;
868
869 size = GetFileSize(file, NULL);
870 if (!(buffer = HeapAlloc(GetProcessHeap(), 0, size)))
871 {
872 CloseHandle(file);
873 SetLastError(ERROR_OUTOFMEMORY);
874 return INVALID_HANDLE_VALUE;
875 }
876 if (!(hmsg = CryptMsgOpenToDecode(dwEncodingType, 0, 0, hProv, NULL,
NULL)))
877 {
878 CloseHandle(file);
879 HeapFree(GetProcessHeap(), 0, buffer);
880 return INVALID_HANDLE_VALUE;
881 }
So I checked it the file existed, and it does.
ll DoW2/drive_c/Program\ Files\ \(x86\)/Steam/SteamApps/common/Dawn\ of\ War\
2/content.cat
-rw-r--r-- 1 guest users 5861 22 janv. 21:46 DoW2/drive_c/Program Files
(x86)/Steam/SteamApps/common/Dawn of War 2/content.cat
guest at linux-w330:~>
So I don't know what to do anymore.
I can perform any trace needed.
May be the CryptCATopen is a red herring, so I can trace anything else if
needed
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list