http://bugs.winehq.org/show_bug.cgi?id=16692
Summary: Morrowind Construction Set Crashes on Saving New Plugin Product: Wine Version: 1.1.11 Platform: PC-x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: aestrivex@gmail.com
Created an attachment (id=18347) --> (http://bugs.winehq.org/attachment.cgi?id=18347) ASCII text file of error output
TES III: Morrowind's Construction Set does not allow the creation of new plugin files (mods) and causes a crash to desktop upon saving a new plugin file. Changes to old plugin files suffer no such crashes.
http://bugs.winehq.org/show_bug.cgi?id=16692
Vitaliy Margolen vitaliy@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|directx-d3d |-unknown
--- Comment #1 from Vitaliy Margolen vitaliy@kievinfo.com 2008-12-31 14:26:06 --- Please install debug symbols or compile Wine from source.
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #2 from Austin English austinenglish@gmail.com 2009-06-30 11:43:07 --- Is this still an issue in current (1.1.24 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #3 from Roan L aestrivex@gmail.com 2009-06-30 15:58:53 --- confirming that this bug is still present.
http://bugs.winehq.org/show_bug.cgi?id=16692
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |austinenglish@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=16692
Felipe Moraes felipemoraesbr@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |felipemoraesbr@gmail.com
--- Comment #4 from Felipe Moraes felipemoraesbr@gmail.com 2010-06-26 21:48:53 --- I have been affected by this on current wine 1.2-rc5
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #5 from William J May may.11b@runbox.com 2010-07-10 00:54:50 --- Created an attachment (id=29485) --> (http://bugs.winehq.org/attachment.cgi?id=29485) output from 1.2-rc7
http://bugs.winehq.org/show_bug.cgi?id=16692
William J May may.11b@runbox.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #6 from William J May may.11b@runbox.com 2010-07-10 01:01:19 --- *** This bug has been confirmed by popular vote. ***
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #7 from Kurt kurtjaeke@gmx.de 2010-10-10 06:52:53 CDT --- Created an attachment (id=31207) --> (http://bugs.winehq.org/attachment.cgi?id=31207) crash log of wine 1.3.4 on MacOSX 10.6
Crash log of wine 1.3.4 on MacOSX 10.6.
So, this still happens with 1.3.4.
http://bugs.winehq.org/show_bug.cgi?id=16692
Kurt kurtjaeke@gmx.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |kurtjaeke@gmx.de
http://bugs.winehq.org/show_bug.cgi?id=16692
MadDin MadDin081591@gmx.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |MadDin081591@gmx.de
--- Comment #8 from MadDin MadDin081591@gmx.de 2011-08-06 14:49:38 CDT --- The same problem here on Ubuntu 10.04 with Wine 1.3.25
http://bugs.winehq.org/show_bug.cgi?id=16692
jisaak98@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jisaak98@gmail.com
--- Comment #9 from jisaak98@gmail.com 2012-02-18 02:03:30 CST --- wine 1.4-rc4, the problem is still there. (openSUSE x86_64)
http://bugs.winehq.org/show_bug.cgi?id=16692
Jan-Peter Nilsson peppe@bsnet.se changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |peppe@bsnet.se
--- Comment #10 from Jan-Peter Nilsson peppe@bsnet.se 2012-04-06 02:06:03 CDT --- The OPENFILENAMEA structure given to GetSaveFileNameA() have a nMaxFile of 0 and NULL lpstrFile.
According to what I found on MSDN this does not appear to be valid values. "The GetOpenFileName and GetSaveFileName functions return FALSE if the buffer is too small to contain the file information. The buffer should be at least 256 characters long." [1]
So I guess either GetSaveFileName on windows doesn't actually work as described, or wine is triggering a different behavior at some earlier stage that leads to the call to GetSaveFileNameA() getting an empty buffer.
[1] http://msdn.microsoft.com/en-us/library/windows/desktop/ms646839%28v=vs.85%2...
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #11 from Juan Lang juan.lang@gmail.com 2012-04-06 11:28:36 CDT --- (In reply to comment #10)
The OPENFILENAMEA structure given to GetSaveFileNameA() have a nMaxFile of 0 and NULL lpstrFile.
According to what I found on MSDN this does not appear to be valid values. "The GetOpenFileName and GetSaveFileName functions return FALSE if the buffer is too small to contain the file information. The buffer should be at least 256 characters long." [1]
Interesting. Should be relatively simple to write a test case for GetSaveFileNameA. Care to give it a go?
http://bugs.winehq.org/show_bug.cgi?id=16692
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #18347|0 |1 is obsolete| | Attachment #29485|0 |1 is obsolete| |
--- Comment #12 from Austin English austinenglish@gmail.com 2012-04-11 23:37:19 CDT --- Created attachment 39759 --> http://bugs.winehq.org/attachment.cgi?id=39759 hacked up tests
I took a quick look at hacking together some tests. These pass on windows/wine, which is getting false from Get{Open,Save}FileNameA.
Of course, these tests may by flawed, I don't know comdlg32, just hacked/slashed this up :).
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #13 from Jan-Peter Nilsson peppe@bsnet.se 2012-04-12 01:04:55 CDT --- I played a bit with GetSaveFileNameA on Windows XP, it seems that giving a nMaxFile/lpstrFile combination that is not large enough to contain the selected path will as expected return false. This is using the same value for Flags as TESCS did.
However giving it a zero/null nMaxFile/lpstrFile I get it to return true. In this case lpstrFile is still null after, so I have no idea how you would actually get the selected filename. I can't get to that code at the moment though, can't power that computer up, possibly broken PSU.
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #14 from Jan-Peter Nilsson peppe@bsnet.se 2012-04-12 14:11:04 CDT --- Created attachment 39779 --> http://bugs.winehq.org/attachment.cgi?id=39779 comdlg32: Avoid null dereference in FILEDLG95_OnOpen
This patch makes us avoid the crash, but does not make it work.
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #15 from Jan-Peter Nilsson peppe@bsnet.se 2012-04-12 14:13:54 CDT --- Created attachment 39780 --> http://bugs.winehq.org/attachment.cgi?id=39780 Test triggering the problem
This test triggers the crash for me in wine, on Windows XP it passes.
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #16 from Vitaliy Margolen vitaliy-bugzilla@kievinfo.com 2012-04-12 20:56:21 CDT --- (In reply to comment #14) Please merge your 2 commits together and send it to wine-patches mailing list. Patches are not picked up from bugzilla.
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #17 from Jan-Peter Nilsson peppe@bsnet.se 2012-04-13 01:21:18 CDT --- (In reply to comment #16)
(In reply to comment #14) Please merge your 2 commits together and send it to wine-patches mailing list. Patches are not picked up from bugzilla.
I'm aware of that, they are not meant for inclusion in their current form. The point was to share what I have found so far, perhaps I should have been more clear about that.
Patch 1 (null pointer dereference): Prevents the crash but does not actually make it work, based on the looks of if a real solution should probably not even get into this code path. So depending on the real solution required to make the application work this may prove to be pointless.
Patch 2 (test): The test is interactive, I believe it should be made non-interactive. It is also incomplete, as previously mentioned, I don't yet know how to get the selected filename out of it, so currently it is only testing the return value. Whatever method TECS is using the get the selected filename is not working, modifying the function to return the expected value is not enough to make it work.
http://bugs.winehq.org/show_bug.cgi?id=16692
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |00cpxxx@gmail.com
--- Comment #18 from Bruno Jesus 00cpxxx@gmail.com 2012-09-01 19:59:23 CDT --- Please, try again in wine 1.5.12. This is possibly a duplicate of bug 17229 that was fixed by http://source.winehq.org/git/wine.git/commitdiff/8c5cf7e25f8c547306f37ae151d...
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #19 from Jan-Peter Nilsson peppe@bsnet.se 2012-09-02 04:55:38 CDT --- The correction for bug 17229 prevents the crash but does not make it work. TESCS does not get the selected filename so the behaviour is basically the same as selecting cancel.
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #20 from Bruno Jesus 00cpxxx@gmail.com 2012-09-02 07:10:25 CDT --- I guess I don't understand this bug then =)
Can you try to clarify it more? I have Morrowind somewhere here, does every cd-rom comes with the construction set or do I have to download it?
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #21 from Jan-Peter Nilsson peppe@bsnet.se 2012-09-03 11:49:11 CDT --- The construction set is (at least in the edition I have) available from a separate CD that I got with Morrowind.
It no longer crashes so it is improved, but after selecting a filename to save to it appears that the construction set does not recognize that a filename was selected. A file with the selected name is not created.
If you find the construction set you should be able to reproduce it by: 1. Start the construction set 2. Click the save button 3. Enter a filename, select save 4. Notice that the file was not created
http://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #22 from Bruno Jesus 00cpxxx@gmail.com --- I can see the problem in wine 1.7.24.
http://bugs.winehq.org/show_bug.cgi?id=16692
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Morrowind Construction Set |Morrowind Construction Set |Crashes on Saving New |does nothing while saving |Plugin |new plugin Alias|aestrivex |
--- Comment #23 from Bruno Jesus 00cpxxx@gmail.com --- I can't really understand what the application is doing... The application does not pass lpstrFile and still is able to get the path on windows, I have no idea why.
https://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #24 from Austin English austinenglish@gmail.com --- This is your friendly reminder that there has been no bug activity for over a year. Is this still an issue in current (1.7.51 or newer) wine?
https://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #25 from Jan-Peter Nilsson peppe@bsnet.se --- The problem is still exists with the current master (a7e294c).
https://bugs.winehq.org/show_bug.cgi?id=16692
trymeout@tutanota.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |trymeout@tutanota.com
--- Comment #26 from trymeout@tutanota.com --- Created attachment 65887 --> https://bugs.winehq.org/attachment.cgi?id=65887 wine 4.18
Does not work in wine 4.18. Here is a log
https://bugs.winehq.org/show_bug.cgi?id=16692
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gofmanp@gmail.com
--- Comment #27 from Paul Gofman gofmanp@gmail.com --- (In reply to Bruno Jesus from comment #23)
I can't really understand what the application is doing... The application does not pass lpstrFile and still is able to get the path on windows, I have no idea why.
Did you see what it passes in lpstrFileTitle? I have no game to test, but I made a brief unit test, with lpstrFile and nMaxFile set to 0, but lpstrFileTitle and nMaxFileTitle set to valid buffer, Windows (XP & 7) returns the selected file name to the provided lpstrFileTitle in this case, while Wine does not.
https://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #28 from trymeout@tutanota.com --- I believe this issue is also present for the Oblivion Construction set, and the Skyrim Creation Kit.
https://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #29 from Jan-Peter Nilsson peppe@bsnet.se --- (In reply to Paul Gofman from comment #27)
Did you see what it passes in lpstrFileTitle? I have no game to test, but I made a brief unit test, with lpstrFile and nMaxFile set to 0, but lpstrFileTitle and nMaxFileTitle set to valid buffer, Windows (XP & 7) returns the selected file name to the provided lpstrFileTitle in this case, while Wine does not.
It does pass nMaxFileTitle/lpstrFileTitle.
Patching wine so that we insert the filenamename in lpstrFileTitle even without lpstrFile I can see that the construction set does get the filename and it seems to work properly as long as you don't change directory.
If you change directory it will save to the 'Data Files'* directory anyway. It does set the OFN_NOCHANGEDIR flag, so GetSaveFileNameA does not change the working directory.
It is possible this works the same on Windows, I will try.
* 'Data Files' is the default directory, it is passed in to lpstrInitialDir, working directory is 'C:\Program Files\Bethesda Softworks\Morrowind' so that becomes 'C:\Program Files\Bethesda Softworks\Morrowind\Data Files'
https://bugs.winehq.org/show_bug.cgi?id=16692
--- Comment #30 from Jan-Peter Nilsson peppe@bsnet.se --- (In reply to Jan-Peter Nilsson from comment #29)
If you change directory it will save to the 'Data Files'* directory anyway. It does set the OFN_NOCHANGEDIR flag, so GetSaveFileNameA does not change the working directory.
It is possible this works the same on Windows, I will try.
I'm seeing the same behavior on Windows 8, the construction set only uses the filename from the save dialog and saves to the 'Data Files' directory even if you change directory in the save dialog.
So it does not appear to be anything else going on, GetSaveFileNameA not populating lpstrFileTitle is the problem.
https://bugs.winehq.org/show_bug.cgi?id=16692
Neko-san nekoNexus@protonmail.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nekoNexus@protonmail.ch