https://bugs.winehq.org/show_bug.cgi?id=49178
Bug ID: 49178 Summary: Spitfire Audio crashes on start Product: Wine Version: 5.8 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: lorenzo@leonardini.dev Distribution: ---
Created attachment 67195 --> https://bugs.winehq.org/attachment.cgi?id=67195 error backtrace
The Spitfire Audio App crashes even before showing any window.
The application worked fine until version 3.1.18, but since the update 3.2.3, and still in the current version 3.2.6 it doesn't start anymore.
Unfortunately, the software doesn't allow you to use an outdated version and automatically updates itself.
I am using wine-5.8 (Staging) on an Arch Linux system (64 bit).
Links to different version downloads: - 3.1.18 https://d1t3zg51rvnesz.cloudfront.net/p/files/lm/1584702000/win/SpitfireAudi... - 3.2.3 https://d1t3zg51rvnesz.cloudfront.net/p/files/lm/1588863600/win/SpitfireAudi... - 3.2.6 https://d1t3zg51rvnesz.cloudfront.net/p/files/lm/1589374800/win/SpitfireAudi...
https://bugs.winehq.org/show_bug.cgi?id=49178
Louis Lenders xerox.xerox2000x@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Ever confirmed|0 |1 Status|UNCONFIRMED |NEW CC| |xerox.xerox2000x@gmail.com URL| |https://d1t3zg51rvnesz.clou | |dfront.net/p/files/lm/15893 | |74800/win/SpitfireAudioWinS | |etup-3.2.6.exe
--- Comment #1 from Louis Lenders xerox.xerox2000x@gmail.com --- Hi, this starts fine for me in current wine-5.8-147-g893080e4df (current git-version wine compiled from source)
However, in wine-5.8 (staging) I get the same crash. Unfortunately I don`t have wine-5.8 (vanilla) installed so could not test, but my guess is, it crashes too (as you showed).
So this bug is probably already fixed in current git version of wine.
@OP: Any chance you could test this in current git version of wine? If not, please retest if wine-5.9 comes out.
Regards
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #2 from Lorenzo Leonardini lorenzo@leonardini.dev --- (In reply to Louis Lenders from comment #1)
Hi, this starts fine for me in current wine-5.8-147-g893080e4df (current git-version wine compiled from source)
However, in wine-5.8 (staging) I get the same crash. Unfortunately I don`t have wine-5.8 (vanilla) installed so could not test, but my guess is, it crashes too (as you showed).
So this bug is probably already fixed in current git version of wine.
@OP: Any chance you could test this in current git version of wine? If not, please retest if wine-5.9 comes out.
Regards
I've tried installing wine from git (wine-5.8-173-g9e26bc8116) with 64 bit support. The program still crashes on startup. I don't exclude I did something wrong during the compiling process, but I tried to follow the instructions at https://wiki.winehq.org/Building_Wine#Shared_WoW64
I'm attaching the new backtrace
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #3 from Lorenzo Leonardini lorenzo@leonardini.dev --- Created attachment 67203 --> https://bugs.winehq.org/attachment.cgi?id=67203 backtrace with git version wine-5.8-173-g9e26bc8116
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #4 from Louis Lenders xerox.xerox2000x@gmail.com --- (In reply to Lorenzo Leonardini from comment #2)
(In reply to Louis Lenders from comment #1)
s
I've tried installing wine from git (wine-5.8-173-g9e26bc8116) with 64 bit support. The program still crashes on startup.
Hmmm, weird then, it starts fine here as I already said.
I compiled wine with CFLAGS="-O0", maybe that makes the difference, just a shot in the dark, but could be worth to try that.
Regards
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #5 from Lorenzo Leonardini lorenzo@leonardini.dev --- It seems like I can't install it anymore with that git version.
Apparently I can't even get the backlog, since the Program Error Details window gets stuck. I'm attaching the output of the terminal (got with wine SpitfireAudioWinSetup-3.2.6.exe | tee > installation-logs.txt)
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #6 from Lorenzo Leonardini lorenzo@leonardini.dev --- Created attachment 67210 --> https://bugs.winehq.org/attachment.cgi?id=67210 installation log (not actually got with tee, it didn't work)
https://bugs.winehq.org/show_bug.cgi?id=49178
mattias.ohlsson@inprose.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mattias.ohlsson@inprose.com
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #7 from mattias.ohlsson@inprose.com --- I am using wine-5.9 (Staging) on CentOS 8. Same crash (in a new/clean wineprefix)...
https://bugs.winehq.org/show_bug.cgi?id=49178
Ash Gittins ash@ajg.net.au changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ash@ajg.net.au
--- Comment #8 from Ash Gittins ash@ajg.net.au --- I'm also experiencing this. I tried with fresh 32bit and 64bit prefixes and it still crashes on launch (installer works fine).
I'm using wine-5.8 (Staging) from the winehq buster repos.
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #9 from Ash Gittins ash@ajg.net.au --- (In reply to Ash Gittins from comment #8)
Oops, forgot to include... console output from crash when running wine ~/.wine/drive_c/Program\ Files\ (x86)/Spitfire\ Audio/Spitfire\ Audio.exe &> crashlog2.txt
https://bugs.winehq.org/show_bug.cgi?id=49178
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #10 from joaopa jeremielapuree@yahoo.fr --- Created attachment 67242 --> https://bugs.winehq.org/attachment.cgi?id=67242 console oupt with relay and seh channels enabled
Crashing for me too with vanilla wine-5.9.
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #11 from Lorenzo Leonardini lorenzo@leonardini.dev --- (In reply to Louis Lenders from comment #1)
Hi, this starts fine for me in current wine-5.8-147-g893080e4df (current git-version wine compiled from source)
However, in wine-5.8 (staging) I get the same crash. Unfortunately I don`t have wine-5.8 (vanilla) installed so could not test, but my guess is, it crashes too (as you showed).
So this bug is probably already fixed in current git version of wine.
@OP: Any chance you could test this in current git version of wine? If not, please retest if wine-5.9 comes out.
Regards
Just tried with wine staging 5.9 on Arch Linux 64bit. I can confirm it still doesn't work. I'm attaching the new backtrace, in case it's different.
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #12 from Lorenzo Leonardini lorenzo@leonardini.dev --- Created attachment 67251 --> https://bugs.winehq.org/attachment.cgi?id=67251 Crash on startup, wine staging 5.9
https://bugs.winehq.org/show_bug.cgi?id=49178
Tres Seaver tseaver@palladion.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |tseaver@palladion.com
--- Comment #13 from Tres Seaver tseaver@palladion.com --- FWIW, I haven't had any trouble at all running the *installers* (SpitfireAudioWinSetup-3.2.3.exe or SpitfireAudioWinSetup-3.2.6.exe). The installer populates the wine prefix without apparent error. Where I *do* see the failure is in running the installed application ('Spitfire\ Audio.exe'). E.g., running:
------------- %< ---------------- #!/bin/bash SPITFIRE=/media/tseaver/spitfire WINEPREFIX=$SPITFIRE wine $SPITFIRE/drive_c/Program\ Files\ (x86)/Spitfire\ Audio/Spitfire\ Audio.exe ------------- %< ----------------
I see the exact same backtrace as reported by Lorenzo. I'm assuming therefore that he has successfully run the installer, and is seeing the error when actually running the installed app (the installer helpfully offers to run it at the end, which may confuse the issue).
Thanks!
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #14 from Lorenzo Leonardini lorenzo@leonardini.dev --- (In reply to Tres Seaver from comment #13)
FWIW, I haven't had any trouble at all running the *installers* (SpitfireAudioWinSetup-3.2.3.exe or SpitfireAudioWinSetup-3.2.6.exe). The installer populates the wine prefix without apparent error. Where I *do* see the failure is in running the installed application ('Spitfire\ Audio.exe').
Yes sorry, I did in fact have problems with the installer, but I'm pretty sure I did something wrong when compiling wine from git. When I use the wine version available via pacman it works just fine.
I can confirm the installer works and the problem is the Spitfire Audio.exe executable.
Sorry for making things unclear
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #15 from mattias.ohlsson@inprose.com --- Wine 5.9-staging: Spitfire Audio.exe crashes.
Wine 5.9-staging compiled with CFLAGS="-O0": Spitfire Audio.exe starts and I can login and download BBC SO Discover.
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #16 from Lorenzo Leonardini lorenzo@leonardini.dev --- (In reply to mattias.ohlsson from comment #15)
Wine 5.9-staging: Spitfire Audio.exe crashes.
Wine 5.9-staging compiled with CFLAGS="-O0": Spitfire Audio.exe starts and I can login and download BBC SO Discover.
Just tried, it works for me.
https://bugs.winehq.org/show_bug.cgi?id=49178
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Component|-unknown |wtsapi32 Summary|Spitfire Audio crashes on |Spitfire Audio 3.x crashes |start |on start due to | |'WTSQuerySessionInformation | |A' stub not initializing | |out parameters
--- Comment #17 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming. The app doesn't care about WTSQuerySessionInformationA() API return value but rather looks at out parameters. Wine's WTSQuerySessionInformationA() is a stub that doesn't do anything in contrast to WTSQuerySessionInformationW() which implements WTSUserName info class.
The app working with Wine built with CFLAGS="-O0" is just coincidence, the "out" buffer parameter is NULL before + after return (different stack layout / init values).
Relevant app disassembly:
--- snip --- ... 00959F50 | push ebp | 00959F51 | mov ebp,esp | 00959F53 | sub esp,410 | 00959F59 | mov eax,dword ptr ds:[12B8474] | 00959F5E | xor eax,ebp | 00959F60 | mov dword ptr ss:[ebp-4],eax | 00959F63 | push esi | 00959F64 | lea eax,dword ptr ss:[ebp-40C] | 00959F6A | mov dword ptr ss:[ebp-410],0 | 00959F74 | push eax | &BytesReturned 00959F75 | lea eax,dword ptr ss:[ebp-408] | 00959F7B | mov esi,ecx | 00959F7D | push eax | &Buffer 00959F7E | push 5 | WTSInfoClass 00959F80 | push FFFFFFFF | SessionId 00959F82 | mov dword ptr ss:[ebp-40C],esi | 00959F88 | push 0 | hServer 00959F8A | mov dword ptr ss:[ebp-40C],0 | 00959F94 | call dword ptr ds:[<&WTSQuerySessionInformationA>] | 00959F9A | push dword ptr ss:[ebp-408] | Buffer 00959FA0 | mov edx,dword ptr ss:[ebp-40C] | BytesReturned 00959FA6 | mov ecx,esi | 00959FA8 | call spitfire audio.68EBB0 | ... 0068EBB0 | push ebp | 0068EBB1 | mov ebp,esp | 0068EBB3 | sub esp,8 | 0068EBB6 | mov eax,dword ptr ss:[ebp+8] | Buffer 0068EBB9 | mov dword ptr ss:[ebp-8],ecx | 0068EBBC | push esi | 0068EBBD | mov esi,edx | BytesReturned 0068EBBF | test eax,eax | Buffer != NULL? 0068EBC1 | je spitfire audio.68EC50 | 0068EBC7 | cmp byte ptr ds:[eax],0 | Buffer[0] != '\0'? 0068EBCA | je spitfire audio.68EC50 | 0068EBD0 | test esi,esi | 0068EBD2 | je spitfire audio.68EC50 | --- snip ---
Stack layout/values before API call
--- snip --- 0031F804 00000000 hServer 0031F808 FFFFFFFF SessionId 0031F80C 00000005 WTSInfoClass 0031F810 0031F824 &Buffer 0031F814 0031F820 &BytesReturned 0031F818 0031FC40 0031F81C 00000000 0031F820 00000000 BytesReturned 0031F824 00000002 Buffer (garbage) <-- will cause crash on deref 0031F828 00000060 0031F82C 00000000 0031F830 00000000 0031F834 00000000 0031F838 00000000 ... --- snip ---
Wine source:
https://source.winehq.org/git/wine.git/blob/ba920246e502afe7bc664c1881d528a2...
--- snip --- 287 /************************************************************ 288 * WTSQuerySessionInformationA (WTSAPI32.@) 289 */ 290 BOOL WINAPI WTSQuerySessionInformationA( 291 HANDLE hServer, 292 DWORD SessionId, 293 WTS_INFO_CLASS WTSInfoClass, 294 LPSTR* Buffer, 295 DWORD* BytesReturned) 296 { 297 /* FIXME: Forward request to winsta.dll::WinStationQueryInformationA */ 298 FIXME("Stub %p 0x%08x %d %p %p\n", hServer, SessionId, WTSInfoClass, 299 Buffer, BytesReturned); 300 301 return FALSE; 302 } 303 304 /************************************************************ 305 * WTSQuerySessionInformationW (WTSAPI32.@) 306 */ 307 BOOL WINAPI WTSQuerySessionInformationW( 308 HANDLE hServer, 309 DWORD SessionId, 310 WTS_INFO_CLASS WTSInfoClass, 311 LPWSTR* Buffer, 312 DWORD* BytesReturned) 313 { 314 /* FIXME: Forward request to winsta.dll::WinStationQueryInformationW */ 315 FIXME("Stub %p 0x%08x %d %p %p\n", hServer, SessionId, WTSInfoClass, 316 Buffer, BytesReturned); 317 318 if (WTSInfoClass == WTSUserName) 319 { 320 WCHAR *username; 321 DWORD count = 0; 322 323 GetUserNameW(NULL, &count); 324 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) return FALSE; 325 if (!(username = heap_alloc(count * sizeof(WCHAR)))) return FALSE; 326 GetUserNameW(username, &count); 327 *Buffer = username; 328 *BytesReturned = count * sizeof(WCHAR); 329 return TRUE; 330 } 331 return FALSE; 332 } --- snip ---
Possible options:
(1) just zero-init out parameters but don't implement anything
(2) duplicate the code for WTSUserName info class handling from WTSQuerySessionInformationW() but as ANSI
(3) make WTSQuerySessionInformationA() call WTSQuerySessionInformationW() with W->A conversion of buffer
(4) combination of (1) and (2) or (3) to ensure other buggy apps don't crash as well when querying for other unimplemented info classes, looking at out parameters without checking BOOL return value first.
Depending on the solution taken, the ticket summary should be adapted before release. Currently it refers to (1).
$ sha1sum SpitfireAudioWinSetup-3.2.6.exe c3c36a977c3c85d65b60c28de6074539a95da12c SpitfireAudioWinSetup-3.2.6.exe
$ du -sh SpitfireAudioWinSetup-3.2.6.exe 4.2M SpitfireAudioWinSetup-3.2.6.exe
$ wine --version wine-5.9-23-gba920246e5
Regards
https://bugs.winehq.org/show_bug.cgi?id=49178
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|wine-bugs@winehq.org |gijsvrm@gmail.com
--- Comment #18 from Gijs Vermeulen gijsvrm@gmail.com --- Created attachment 67260 --> https://bugs.winehq.org/attachment.cgi?id=67260 patch
This one should take care of 1-4. Will send to wine-devel soon.
https://bugs.winehq.org/show_bug.cgi?id=49178
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
https://bugs.winehq.org/show_bug.cgi?id=49178
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |1db2b563360c48d6697b4f538b2 | |c843ad4762db5 Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #19 from Anastasius Focht focht@gmx.net --- Hello folks,
this is fixed by commit https://source.winehq.org/git/wine.git/commitdiff/1db2b563360c48d6697b4f538b... ("wtsapi32: Implement WTSQuerySessionInformationA.")
Thanks Gijs
$ wine --version wine-5.9-195-gbf83d755d9
Regards
https://bugs.winehq.org/show_bug.cgi?id=49178
--- Comment #20 from Lorenzo Leonardini lorenzo@leonardini.dev --- The patch seems to work perfectly for me, thank you very much
Bests
https://bugs.winehq.org/show_bug.cgi?id=49178
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #21 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 5.10.
https://bugs.winehq.org/show_bug.cgi?id=49178
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |5.0.x
https://bugs.winehq.org/show_bug.cgi?id=49178
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|5.0.x |---
--- Comment #22 from Michael Stefaniuc mstefani@winehq.org --- Removing the 5.0.x milestone from bug fixes included in 5.0.3.