https://bugs.winehq.org/show_bug.cgi?id=39275
Bug ID: 39275 Summary: Unhandled exception HtmlHelpA after starting Print Shop Deluxe 15 Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: hhctrl.ocx Assignee: wine-bugs@winehq.org Reporter: martinrs@softhome.net Distribution: ---
After starting Print Shop Deluxe 15, the following error occurs: Unhandled exception: page fault on read access to 0xfffffff0 in 32-bit code .. Backtrace: => 0 0xf7443422 __strlen_sse2_bsf+0x32() in libc.so.6 1 0x7b854663 MultiByteToWideChar+0x172() in kernel32 2 0x7c39a92f HtmlHelpA+0x158e() in hhctrl
I checked the wine source and hhctrl.ocx HtmlHelpA() doesn't behave the same as HtmlHelpW(), where it doesn't take into account that some command can send null filename. It seems to just try to get the string length of null thru the following statement: WCHAR *wfile = strdupAtoW( filename );
https://bugs.winehq.org/show_bug.cgi?id=39275
--- Comment #1 from Bruno Jesus 00cpxxx@gmail.com --- Created attachment 52354 --> https://bugs.winehq.org/attachment.cgi?id=52354 patch
The attached patch should fix it.
https://bugs.winehq.org/show_bug.cgi?id=39275
--- Comment #2 from Martin Fontaigne martinrs@softhome.net --- I tried the patch but it didn't help. It turns out that strdupAtoW() already checks null so there was no need for the patch, and the crash wasn't actually happening there. The arguments were HtmlHelpA(NULL,NULL,HH_SET_WIN_TYPE,data)
I eventually traced the problem to data->pszCustomTabs being sent as -1, and that's where the crash was occurring, in wintypeAtoW() strdupAtoW(data->pszCustomTabs). I overrode with native hhctrl.ocx and the crash doesn't seem to occur. Maybe it's an undocumented feature.
If I force data->pszCustomTabs=NULL, the program seems to continue without problems, so maybe -1 is equivalent to NULL?
https://bugs.winehq.org/show_bug.cgi?id=39275
--- Comment #3 from Martin Fontaigne martinrs@softhome.net --- I found an old wine commit 7293f00d9dccf1411ed84817755c6378377bbc33 dated December 13, 2007 that had the following portion in the patch:
/* FIXME: pszCustomTabs is a list of multiple zero-terminated strings so ReadString won't * work in this case */ #if 0 - pHHWinType->pszCustomTabs = CHM_ReadString(pChmInfo, (DWORD)pHHWinType->pszCustomTabs); + info->WinType.pszCustomTabs = info->pszCustomTabs = CHM_ReadString(pChmInfo, (DWORD_PTR)info->WinType.pszCustomTabs); #endif
Maybe it was never meant to be just a string, and passing -1 means it's an empty list.
https://bugs.winehq.org/show_bug.cgi?id=39275
winetest@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winetest@luukku.com
--- Comment #4 from winetest@luukku.com --- Is there a freely available working download for this so I could test the bug?
https://bugs.winehq.org/show_bug.cgi?id=39275
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |Abandoned?, patch Severity|major |normal
--- Comment #5 from Ken Sharp imwellcushtymelike@gmail.com --- Is this fixed in Wine 3.9 or later?
https://bugs.winehq.org/show_bug.cgi?id=39275
tokktokk fdsfgs@krutt.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs@krutt.org
https://bugs.winehq.org/show_bug.cgi?id=39275
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |ABANDONED
--- Comment #6 from Ken Sharp imwellcushtymelike@gmail.com --- No answer.
https://bugs.winehq.org/show_bug.cgi?id=39275
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Austin English austinenglish@gmail.com --- Closing.