https://bugs.winehq.org/show_bug.cgi?id=42625
Bug ID: 42625 Summary: fixme:commdlg:GetOpenFileName16 custom hook 0x17a7053e no longer supported Product: Wine-staging Version: 2.3 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: cparke@parkerfamily.name CC: erich.e.hoover@wine-staging.com, michael@fds-team.de, sebastian@fds-team.de Distribution: Ubuntu
Installed wine-staging package via the wine0-builds PPA on new install of Ubuntu 16.04 LTS last week. Installed a Windows 3.1 16-bit application in the Windows virtual file system. Everything worked great! Today, installed package update with executables built March 6. 2017. Suddenly, my 16-bit application gets an error whenever it tries to open files! In the console, the error message is "fixme:commdlg:GetOpenFileName16 custom hook 0x17a7053e no longer supported". This is really bad!
https://bugs.winehq.org/show_bug.cgi?id=42625
--- Comment #1 from Chris Parker cparke@parkerfamily.name --- Ubuntu x64 to be exact. apt-get installed both wine-staging-amd64 and wine-staging-i386:i386. Win16 application is being run using the 32-bit wine executable, however there is only one wineserver executable installed and running, and it is 64-bit! I guess that's how it works.
https://bugs.winehq.org/show_bug.cgi?id=42625
Jeff Zaroyko jeffz@jeffz.name changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEEDINFO Ever confirmed|0 |1 Severity|major |normal
--- Comment #2 from Jeff Zaroyko jeffz@jeffz.name --- What's the name of the application?
What doesn't work with the application?
https://bugs.winehq.org/show_bug.cgi?id=42625
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |comdlg32 Keywords| |regression Product|Wine-staging |Wine
--- Comment #3 from Sebastian Lackner sebastian@fds-team.de --- (In reply to Chris Parker from comment #0)
In the console, the error message is "fixme:commdlg:GetOpenFileName16 custom hook 0x17a7053e no longer supported". This is really bad!
The 16-bit implementation hasn't been changed since a long time, this message was already before. Please provide additional information how to reproduce this issue and add a log.
Nevertheless, my guess would be that its caused by:
https://source.winehq.org/git/wine.git/patch/c23a91cb638262f1d60f4437650c744...
It looks like after the change nMaxFile is ignored for A strings:
--- snip --- ofnW.lpstrFile = heap_strdupAtoW(ofn->lpstrFile); --- snip ---
And the W-function also has a bug (should allocate one more char or use memcpy):
--- snip --- if (ofn->lpstrFile) { info->filename = MemAlloc(ofn->nMaxFile * sizeof(WCHAR)); lstrcpynW(info->filename, ofn->lpstrFile, ofn->nMaxFile); } --- snip ---
https://bugs.winehq.org/show_bug.cgi?id=42625
--- Comment #4 from Sebastian Lackner sebastian@fds-team.de --- (In reply to Sebastian Lackner from comment #3)
And the W-function also has a bug (should allocate one more char or use memcpy):
Please ignore this second part. The first one might be a valid bug though.
https://bugs.winehq.org/show_bug.cgi?id=42625
--- Comment #5 from Chris Parker cparke@parkerfamily.name ---
What's the name of the application?
What doesn't work with the application?
QuickBooks 5.0 (for Windows 3.1 and up).
When I tried opening the company file, restoring the company from the backup file, and also opening the sample company file that comes with the program. In all case, after the Wine update applied today, program errored out complaining that the file was "damaged or corrupted." That message normally appears if the file is on a floppy diskette that has read errors. On the wine console, the OpenFile16 error appeared, so I assumed they are related. Yesterday, however, wine-staging ran this program perfectly and the company file opened just fine!
Not sure how to build Biarch Wine on Ubuntu these days like you seem to be doing for the wine-staging PPA, the Wiki about how to do it is complicated and may be very outdated. So I just uninstalled wine-staging 2.3 and replaced it with the Wine v1.6 build included in the Ubuntu distro and the company file opens normally again. I'll probably be sticking with that now, though I could still verify your fix if I had the right build script to properly compile the patched package.
https://bugs.winehq.org/show_bug.cgi?id=42625
--- Comment #6 from Chris Parker cparke@parkerfamily.name --- (In reply to Sebastian Lackner from comment #3)
Nevertheless, my guess would be that its caused by:
https://source.winehq.org/git/wine.git/patch/ c23a91cb638262f1d60f4437650c7440d3c70c19
It looks like after the change nMaxFile is ignored for A strings:
--- snip --- ofnW.lpstrFile = heap_strdupAtoW(ofn->lpstrFile); --- snip ---
I don't know, the application clearly is unable reading data files from disk, though it seems to have loaded the .INI file just fine! You made a lot of changes in a related area, that's bound to cause unexpected bugs like this!
https://bugs.winehq.org/show_bug.cgi?id=42625
--- Comment #7 from Chris Parker cparke@parkerfamily.name --- It is true that the bogus file read error comes up after selecting the file in the OpenFile dialog!
https://bugs.winehq.org/show_bug.cgi?id=42625
Chris Parker cparke@parkerfamily.name changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |cparke@parkerfamily.name
https://bugs.winehq.org/show_bug.cgi?id=42625
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |f7d40d45da7a1bc0accd58bca6d | |6da4e34861937 Component|comdlg32 |-unknown Status|NEEDINFO |NEW Summary|fixme:commdlg:GetOpenFileNa |Flushing file (int 0x21, |me16 custom hook 0x17a7053e |ah=0x68) fails with access |no longer supported |denied error in 16-bit code CC| |gofmanp@gmail.com
--- Comment #8 from Sebastian Lackner sebastian@fds-team.de --- Bisecting reveals that the real issue is something different.
--- snip --- commit f7d40d45da7a1bc0accd58bca6d6da4e34861937 Author: Paul Gofman gofmanp@gmail.com Date: Wed Mar 1 14:05:54 2017 +0300
ntdll: NtFlushBuffersFile should fail if the file handle has no write access.
Signed-off-by: Paul Gofman gofmanp@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org --- snip ---
I've sent a patch.
https://bugs.winehq.org/show_bug.cgi?id=42625
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Flushing file (int 0x21, |Flushing file (int 0x21, |ah=0x68) fails with access |ah=0x68) fails with access |denied error in 16-bit code |denied error in 16-bit code | |(affects QuickBooks 5.0) Resolution|--- |FIXED Fixed by SHA1| |59103375b9d54d2e3713a042fdb | |06a4d5531ef28 Status|NEW |RESOLVED
--- Comment #9 from Sebastian Lackner sebastian@fds-team.de --- This should be fixed with 59103375b9d54d2e3713a042fdb06a4d5531ef28. Please retest with current Wine git (or when the next version is released).
https://bugs.winehq.org/show_bug.cgi?id=42625
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 2.4.