http://bugs.winehq.org/show_bug.cgi?id=13394
Summary: gtk-dev-2.12.9-win32-2.exe crashes on installation Product: Wine Version: 1.0-rc1 Platform: Other OS/Version: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: shell32 AssignedTo: wine-bugs@winehq.org ReportedBy: qelthanos@yahoo.com
Created an attachment (id=13303) --> (http://bugs.winehq.org/attachment.cgi?id=13303) Trace Log
gtk+ installer crashes on wine with shell error. Fails 1/4 through file copying. See the the attached file for log/traceback.
Used defaults for everything with no options to wine nor user modifications to wine/registery.
http://bugs.winehq.org/show_bug.cgi?id=13394
Vincent Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |madewokherd@gmail.com
--- Comment #1 from Vincent Povirk madewokherd@gmail.com 2008-05-24 21:01:59 --- I suggest adding the download keyword and url: http://downloads.sourceforge.net/gladewin32/gtk-dev-2.12.9-win32-2.exe
Sadly I do not have permission to modify those fields.
http://bugs.winehq.org/show_bug.cgi?id=13394
Rob Thornton qelthanos@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |http://downloads.sourceforge | |.net/gladewin32/gtk-dev- | |2.12.9-win32-2.exe Keywords| |download, Installer
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #2 from Rob Thornton qelthanos@yahoo.com 2008-05-25 09:27:19 --- Added keyword and URL. I should also note that there are two installers for this, gtk-dev-2.12.9-win32-1.exe and gtk-dev-2.12.9-win32-2.exe. Both fail to install with the same result. The installer for gtkmm for win32 also installs these packages, as a part of its dependencies, which also fail at the same point.
http://bugs.winehq.org/show_bug.cgi?id=13394
Louis Lenders xerox_xerox2000@yahoo.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |xerox_xerox2000@yahoo.co.uk Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |regression
--- Comment #3 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2008-05-25 12:12:36 --- Just a note, i tried this yesterday, and can confirm the bug. In wine-0.9.30 the installer finishes just fine. If you know how, and have some time, could you please do a regression test? thx
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #4 from Vincent Povirk madewokherd@gmail.com 2008-05-26 14:44:08 --- I've narrowed this down to between 0.9.58 and 0.9.59 using releases I have already built. The crash is in SHFileOperationW (http://source.winehq.org/source/dlls/shell32/shlfileop.c#L1241), and James Hawkins made some patches that touch that between those versions (I'd CC him, but he says it's not needed).
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #5 from Vincent Povirk madewokherd@gmail.com 2008-05-27 00:03:40 --- I think this isn't a regression after all. Wine used to not crash, but it never did the right thing. A comparison of file listings shows that on Windows this installer creates c:\GTK\bin\freetype6.dll, but on versions of Wine that do not crash this file does not exist.
Wine currently throws up at a point where the program uses SHFileOperationA to copy the file c:\GTK\bin\libfreetype-6.dll to a list containing only an empty string. In the installer's own log on Windows, that shows up as part of this sequence:
Output folder: C:\GTK\bin Extract: libfreetype-6.dll Output folder: C:\GTK Copy to Rename: libfreet.dll->C:\GTK\bin\freetype6.dll
Somehow that results in two files with the same contents: libfreetype-6.dll and freetype6.dll. libfreet.dll is not mentioned any earlier in the log. It appears that "Copy to " is creating libfreet.dll by truncating libfreetype-6.dll to 8.3. A quick test shows that this does indeed happen on Windows when the destination of a copy using SHFileOperationA is empty.
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #6 from James Hawkins truiken@gmail.com 2008-05-27 07:35:10 --- Add a conformance test to the wine test suite please.
http://bugs.winehq.org/show_bug.cgi?id=13394
Lei Zhang thestig@google.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jens.steinhauser@gmail.com
--- Comment #7 from Lei Zhang thestig@google.com 2008-05-27 12:24:46 --- *** Bug 13386 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=13394
Lei Zhang thestig@google.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|major |normal Keywords|regression |
--- Comment #8 from Lei Zhang thestig@google.com 2008-05-27 12:29:54 --- I was looking at bug 13386 and I agree with Vincent's analysis.
http://bugs.winehq.org/show_bug.cgi?id=13394
Lionel Debroux lionel_debroux@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |lionel_debroux@yahoo.fr
--- Comment #9 from Lionel Debroux lionel_debroux@yahoo.fr 2008-05-29 09:02:22 --- This happens with all GTK+ development and runtime packages listed on http://sourceforge.net/project/showfiles.php?group_id=98754&package_id=1... (devel) and http://sourceforge.net/project/showfiles.php?group_id=98754&package_id=1... (runtime)
http://bugs.winehq.org/show_bug.cgi?id=13394
Kirill Smelkov kirr@landau.phys.spbu.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |kirr@landau.phys.spbu.ru
http://bugs.winehq.org/show_bug.cgi?id=13394
David Andruczyk djandruczyk@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |djandruczyk@yahoo.com
--- Comment #10 from David Andruczyk djandruczyk@yahoo.com 2008-06-01 16:03:58 --- I can confirm this as well. Ubuntu Hardy, fresh install of wine 1.0 rc3 from wine repo (As described on winehq.org site).
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #11 from David Andruczyk djandruczyk@yahoo.com 2008-06-01 16:06:07 --- Created an attachment (id=13566) --> (http://bugs.winehq.org/attachment.cgi?id=13566) Wine trace of failure
added attachment of trace from wine (1.0 rc3)
http://bugs.winehq.org/show_bug.cgi?id=13394
David Andruczyk djandruczyk@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #13566|application/octet-stream |text/english mime type| |
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #12 from Lionel Debroux lionel_debroux@yahoo.fr 2008-06-22 09:41:09 --- Created an attachment (id=14274) --> (http://bugs.winehq.org/attachment.cgi?id=14274) Anti-crash + conformance test for the combination of parameters used by the GTK+ installers
Conformance test based on Vincent Povirk's analysis. It adds a WARN and two FIXMEs for cases currently unhandled in shlfileop.c.
I think this bug should be marked "dogfood", since it prevents testing some Windows GTK+ apps under Wine.
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #13 from Dmitry Timoshkov dmitry@codeweavers.com 2008-06-22 09:48:55 --- Looks like the test has nothing to do with the patch.
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #14 from Vincent Povirk madewokherd@gmail.com 2008-06-22 09:54:31 --- The 8.3 bit is probably unrelated. It seems to happen on my Windows machine any time files are copied to a directory without specifying a destination filename, but I'm not convinced it will happen on Windows systems in general. Anyway, the installer doesn't seem to mind if the filenames aren't truncated.
http://bugs.winehq.org/show_bug.cgi?id=13394
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch, testcase
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #15 from flossl@live.com 2008-12-23 14:47:20 --- Created an attachment (id=18156) --> (http://bugs.winehq.org/attachment.cgi?id=18156) Terminal log using git.
Still present in git.
http://bugs.winehq.org/show_bug.cgi?id=13394
nathan.n saturn_systems@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |saturn_systems@yahoo.com
--- Comment #16 from nathan.n saturn_systems@yahoo.com 2008-12-30 07:53:54 --- Tried to install:
GTK+ 2.10.11 => gtk-dev-2.10.11-win32-1.exe ( http://downloads.sourceforge.net/gladewin32/gtk-dev-2.10.11-win32-1.exe )
which crashes with an Unhandled page fault
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #17 from nathan.n saturn_systems@yahoo.com 2008-12-30 07:54:53 --- Created an attachment (id=18325) --> (http://bugs.winehq.org/attachment.cgi?id=18325) screenshot of the installer when it crashes
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #18 from Lionel Debroux lionel_debroux@yahoo.fr 2008-12-30 08:06:05 --- Is looking at the file operations shown by ProcessMonitor an allowed way to find out what native Windows does ?
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #19 from Vincent Povirk madewokherd@gmail.com 2008-12-30 11:01:03 --- You should be able to figure out what Wine needs to do from the information in comments and by writing conformance tests.
I've been told that looking at what a Windows component, such as shell32, does on both ends (both the calls made to it and the calls it makes) is not allowed, as it gives you too much knowledge of how the component works internally. Given that you already know what calls the program is making to shell32, I would say this is not allowed.
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #20 from Nikolay Sivov bunglehead@gmail.com 2009-01-24 04:01:11 --- Created an attachment (id=18948) --> (http://bugs.winehq.org/attachment.cgi?id=18948) SHFileOperation patch
With this I'm able to complete gtk-dev-2.12.9-win32-2.exe installer. Patch doesn't break any of existing shell32 tests.
Feedback is welcome.
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #21 from Lionel Debroux lionel_debroux@yahoo.fr 2009-01-27 03:27:49 --- After applying this patch, the GTK+ 2.12.9 installer indeed completes. The GTK+ demo and GTK+ theme selectors start, and most GTK+ demos work properly (at least one of them crashes, but that's the topic of another bug that I'll open when this one is fixed). Good job :)
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #22 from Lionel Debroux lionel_debroux@yahoo.fr 2009-04-13 04:24:43 --- Created an attachment (id=20414) --> (http://bugs.winehq.org/attachment.cgi?id=20414) Check the result of a HeapAlloc() against NULL
Nikolay Sivov sent the patch he posted here to wine-patches: http://www.winehq.org/pipermail/wine-patches/2009-January/068428.html
James Hawkins replied that the functionality should be moved to copy_files(): http://www.winehq.org/pipermail/wine-devel/2009-January/072480.html
Nikolay modified his patch to move the code to copy_files() and decide whether to use the current directory upon flTo->feFiles == NULL: http://www.winehq.org/pipermail/wine-patches/2009-January/068603.html That looks reasonable to me, because of ZeroMemory(&flTo, sizeof(FILE_LIST)); in SHFileOperationW, and parse_file_list returning an error if its szFiles argument is an empty string, before allocating flList (flTo, in this case) ->feFiles.
Is there something wrong with Nikolay's second try (e.g. a failure on native Windows hosts) ?
While checking Nikolay's patch, I found one place where the result of a HeapAlloc invocation is not checked against NULL. I'm attaching a patch for it.
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #23 from Nikolay Sivov bunglehead@gmail.com 2009-04-13 04:42:01 --- (In reply to comment #22)
While checking Nikolay's patch, I found one place where the result of a HeapAlloc invocation is not checked against NULL. I'm attaching a patch for it.
Hi, Lionel.
It's better to send a whole patch including your change (with tests of course) to wine-patches. Fill free to do it (I won't), a patch definitely solves a problem. Use these guidelines http://winehq.org/sending_patches if it's your first time.
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #24 from Vitaliy Margolen vitaliy@kievinfo.com 2009-05-20 07:23:58 --- *** Bug 18521 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #25 from Juan Lang juan_lang@yahoo.com 2009-10-07 17:12:59 --- The patch never got feedback and never got applied, either. Nikolay, would you mind resending? I have a couple style nits I'll point out here though:
+ WCHAR currd[MAX_PATH]; You don't need to declare this in the topmost scope, you can declare it here instead: + { + GetCurrentDirectoryW(MAX_PATH, currd);
Backing up a line,
+ if ((lpFileOp->wFunc == FO_COPY) && + (lpFileOp->pTo[0] == 0)) I think !lpFileOp->pTo[0] is preferred style to comparing against 0.
Finally,
+ else if (lpFileOp->wFunc != FO_DELETE) Leaving the else on its own line looks funny to me. Better would be: + else if (lpFileOp->wFunc != FO_DELETE) - if (lpFileOp->wFunc != FO_DELETE)
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #26 from Nikolay Sivov bunglehead@gmail.com 2009-10-07 17:19:57 --- (In reply to comment #25)
The patch never got feedback and never got applied, either. Nikolay, would you mind resending?
It got feedback actually, Alexandre asked me to rearrange it in some way I don't remember - you could easily find this at wine-devel. It was wrong at structure not at functionality. I'm quite busy now with common controls, so I won't resend this week for sure.
It will be nice if you find some time for it - it's very simple but questionable at structure point (not patch structure but existing code).
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #27 from Lionel Debroux lionel_debroux@yahoo.fr 2009-10-08 03:11:29 --- Yes, Nikolay's try and my try several weeks later ( http://www.winehq.org/pipermail/wine-patches/2009-May/073193.html , http://www.winehq.org/pipermail/wine-devel/2009-May/075790.html ) were wrong at structure.
Perhaps this bug should be tagged "dogfood", since it occurs when trying to use native Windows versions of some portable software under Wine ?
http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #28 from Vincent Povirk madewokherd@gmail.com 2010-02-08 11:43:57 --- This should be fixed by b609e25204f6fdb74b6ee67ce6f348e2dda7afee.
http://bugs.winehq.org/show_bug.cgi?id=13394
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #29 from Nikolay Sivov bunglehead@gmail.com 2010-02-08 11:55:36 --- (In reply to comment #28)
This should be fixed by b609e25204f6fdb74b6ee67ce6f348e2dda7afee.
Yeah, it completes without problems now. Thanks.
http://bugs.winehq.org/show_bug.cgi?id=13394
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #30 from Alexandre Julliard julliard@winehq.org 2010-02-19 12:32:12 --- Closing bugs fixed in 1.1.39.
http://bugs.winehq.org/show_bug.cgi?id=13394
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |b609e25204f6fdb74b6ee67ce6f | |348e2dda7afee