https://bugs.winehq.org/show_bug.cgi?id=46671
Bug ID: 46671 Summary: Biamp canvas crashes on startup Product: Wine Version: 4.2 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: harri.olin@gmail.com Distribution: ---
Created attachment 63618 --> https://bugs.winehq.org/attachment.cgi?id=63618 Terminal output of Biamp Canvas on wine 4.2
Hello
Biamp Canvas is a program for creating and using user interfaces for controlling Biamp Tesira series of DSP hardware. Program crashes after showing user interface.
Download: https://support.biamp.com/Tesira/Software-Firmware
Version 3.8.1 tested (installer name biampcanvassetup3-8-0-3.exe)
Program requires .net 4.7.1, installed with winetricks dotnet471 with patch from https://github.com/Tk-Glitch/PKGBUILDS/blob/master/winetricks-tkg-git/dotnet...
Backtrace tells the crash occurred at: =>0 0x7b43e40c GetFirmwareEnvironmentVariableW+0x13c() in kernel32 (0x0032dcb8) but there is something else in terminal output: ----- Unhandled Exception: System.ServiceModel.Security.SecurityNegotiationException: A call to SSPI failed, see inner exception. ---> System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> System.ComponentModel.Win32Exception: Unknown error (0x8009030e) -----
The Tesira software available on same page for configuring the DSP hardware crashes earlier, before showing splash screen, but that is fixed by native gdiplus. When using native gdiplus, Tesira software looks like it works fine. However native gdiplus does not help the Canvas program.
Tested with 32bit and 64bit prefixes, does not seem to make any difference. Tested on Ubuntu 18.04 running on Hyper-V. Winbind is installed on system.
https://bugs.winehq.org/show_bug.cgi?id=46671
--- Comment #1 from Harri Olin harri.olin@gmail.com --- Created attachment 63619 --> https://bugs.winehq.org/attachment.cgi?id=63619 Backtrace for Biamp Canvas on wine 4.2
https://bugs.winehq.org/show_bug.cgi?id=46671
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
https://bugs.winehq.org/show_bug.cgi?id=46671
--- Comment #2 from Harri Olin harri.olin@gmail.com --- Tested with wine 4.8, didn't work.
Did a bit of digging, looks like something is calling ntlm_InitializeSecurityContextW without username, domain and cached credentials so it fails before doing much.
Added username and domain if not present (after setting ntlm_cred): if (ntlm_cred->no_cached_credentials) { LPWKSTA_USER_INFO_1 ui = NULL; NetWkstaUserGetInfo(NULL, 1, (LPBYTE *)&ui); ntlm_cred->username_arg = ntlm_GetUsernameArg(ui->wkui1_username, -1); ntlm_cred->domain_arg = ntlm_GetDomainArg(ui->wkui1_logon_domain, -1); }
With this, ntlm_auth helper asks for PW after TT which wine does not understand, so I added dummy --password to command line arguments - static const char username_arg[] = "--username="; + static const char username_arg[] = "--password=Asd12345678 --username=";
With this now everything proceeds bit further, ntlm_auth gets to send AF and instead of "Unknown error" following error is logged: "A security requirement was not fulfilled during authentication. Required: None, negotiated: EncryptAndSign."
https://bugs.winehq.org/show_bug.cgi?id=46671
--- Comment #3 from Harri Olin harri.olin@gmail.com --- Created attachment 64409 --> https://bugs.winehq.org/attachment.cgi?id=64409 Biamp canvas with debug +secur32,+ntlm and edited ntlm.c
https://bugs.winehq.org/show_bug.cgi?id=46671
--- Comment #4 from Harri Olin harri.olin@gmail.com ---
Forgot to add that installing dotnet40 with winetricks is enough, set system back to windows 7 after that and run the installer, installer will install dotnet471 succesfully.
This program has two executables in program files directory, BiampCanvas.exe and TesiraServiceHost.exe. I thin when BiampCanvas.exe is run, it will run the other exe and estabilish communication channel between these two using SSPI or something.
..after previous editing of ntlm.c, program goes little further if I force InitializeSecurityContextW return value to be SEC_I_COMPLETE_AND_CONTINUE instead of OK in wrapper.c (on thread 9), after that ntlm_auth on other thread will complain of failed login (on thread 40), I made frontend sh script that adds user/domain/password to command line .. now all ntlm_auth calls seem to complete successfully and both threads get same session key.
after that QueryContextAttributesW gets called with SECPKG_ATTR_NEGOTIATION_INFO and that returns SECPKG_NEGOTIATION_COMPLETE in info package as far as I can see but next thing that happens is DeleteSecurityContext on both threads and error message:
System.Security.Authentication.AuthenticationException: A remote side security requirement was not fulfilled during authentication. Try increasing the ProtectionLevel and/or ImpersonationLevel. ---> System.ComponentModel.Win32Exception: Trust logon failure
No idea at the moment where should I look next.
(disclaimer: I have no idea what I'm doing)
https://bugs.winehq.org/show_bug.cgi?id=46671
pattietreutel katyaberezyaka@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |katyaberezyaka@gmail.com