http://bugs.winehq.org/show_bug.cgi?id=14732
Summary: WINE Wordpad crashes horizontally resizing certain RTF documents Product: Wine Version: CVS/GIT Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: richedit AssignedTo: wine-bugs@winehq.org ReportedBy: ne4@parsoma.net
Created an attachment (id=15223) --> (http://bugs.winehq.org/attachment.cgi?id=15223) A testcase that crashes both 2008-08-02 git & 1.1.2 WINE with wordpad
Steps to reproduce:
(1) Load attached crash_wine_wordpad.rtf in WINE's wordpad. (2) Resize horizontally smaller. (3) While doing so, notice crash occurring.
Expected results: lack of crashing.
http://bugs.winehq.org/show_bug.cgi?id=14732
--- Comment #1 from ne4@parsoma.net 2008-08-02 15:45:26 --- Created an attachment (id=15224) --> (http://bugs.winehq.org/attachment.cgi?id=15224) Stack trace of crash that occurs when resizing provided document
http://bugs.winehq.org/show_bug.cgi?id=14732
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|CVS/GIT |1.1.2
http://bugs.winehq.org/show_bug.cgi?id=14732
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |WORKSFORME
--- Comment #2 from Juan Lang juan_lang@yahoo.com 2008-08-04 13:14:32 --- I can't confirm that. I'll resolve that worksforme for now. Please run with a clean ~/.wine. If you can still reproduce it, run it with a version of wine with debug symbols (to get a better backtrace) and attach the backtrace here.
http://bugs.winehq.org/show_bug.cgi?id=14732
--- Comment #3 from ne4@parsoma.net 2008-08-05 15:10:50 --- (1) It happens even with a clean ~/.wine directory.
(2) My backtrace has filenames and line numbers. According to http://wiki.jswindle.com/index.php/Debugging_Wine#Understanding_and_reading_... that seems to be what a non-debug build misses, but what a default source build possesses. As it happens, the backtrace I posted comes from git on 2008-08-02, per my initial message. If you want a better backtrace, please be explicit in what manner.
(3) Reproducing this with the file posted requires reducing the horizontal window size substantially, probably to under 100 pixels or less. However, it happens reliably. Can you still not reproduce?
http://bugs.winehq.org/show_bug.cgi?id=14732
ne4@parsoma.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |UNCONFIRMED Resolution|WORKSFORME |
--- Comment #4 from ne4@parsoma.net 2008-08-05 15:12:55 --- See previous comment.
http://bugs.winehq.org/show_bug.cgi?id=14732
Juan Lang juan_lang@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #5 from Juan Lang juan_lang@yahoo.com 2008-08-05 15:28:58 --- (In reply to comment #3)
If you want a better backtrace, please be explicit in what manner.
It's missing what the failed assertion was. From the backtrace, I'm guessing it's this one, on wrap.c's line 226: assert((wc->pLastSplittableRun->member.run.nFlags & MERF_SPLITTABLE)); but that's not the assertion that fails for me (see next comment.)
(3) Reproducing this with the file posted requires reducing the horizontal window size substantially, probably to under 100 pixels or less. However, it happens reliably. Can you still not reproduce?
Thanks, the "under 100 pixels" bit was missing from your steps to reproduce. Now I can reproduce it, although the assertion is different from what I'd guessed it would be from your backtrace. A debug build really produces better backtraces. Download and compile wine yourself, it's really not that hard!
Anyway, confirming. I'll attach a proper backtrace in a sec.
http://bugs.winehq.org/show_bug.cgi?id=14732
--- Comment #6 from Juan Lang juan_lang@yahoo.com 2008-08-05 15:30:39 --- Created an attachment (id=15298) --> (http://bugs.winehq.org/attachment.cgi?id=15298) Backtrace
http://bugs.winehq.org/show_bug.cgi?id=14732
--- Comment #7 from ne4@parsoma.net 2008-08-05 16:00:15 --- Created an attachment (id=15302) --> (http://bugs.winehq.org/attachment.cgi?id=15302) Better backtrace
I did compile this copy from git and included the assertion this time - it's the same thing you're seeing, although 4 0x7e1a62d3 ME_WrapMarkedParagraphs+0x9f3(editor=0x4a2880) [/home/nysin/wine/dlls/riched20/wrap.c:225] in riched20 (0x0032d1c8) 5 0x7e195a44 ME_RewrapRepaint+0x34(editor=<register ESI not in topmost frame>) [/home/nysin/wine/dlls/riched20/paint.c:142] in riched20 (0x0032d1e8)
seems to be a bit of misdirection, perhaps - paint.c:142 does call wrap.c, but not at line 225.
http://bugs.winehq.org/show_bug.cgi?id=14732
Dylan Smith dylan.ah.smith@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|wine-bugs@winehq.org |dylan.ah.smith@gmail.com Status|NEW |ASSIGNED
--- Comment #8 from Dylan Smith dylan.ah.smith@gmail.com 2008-10-02 23:48:17 --- Created an attachment (id=16437) --> (http://bugs.winehq.org/attachment.cgi?id=16437) richedit: Removed invalid assertion
The assertion was not valid, because it neglected to take into account the situation where a line break is forced with a MERF_ENDROW run (caused by \line control word or pressing Shift-Enter). This means that spaces can cause a line wrap after a forced line break as well as after a paragraph break, so we cannot assert that it is the first row in the paragraph.
http://bugs.winehq.org/show_bug.cgi?id=14732
Dylan Smith dylan.ah.smith@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch, source
http://bugs.winehq.org/show_bug.cgi?id=14732
--- Comment #9 from Dylan Smith dylan.ah.smith@gmail.com 2008-10-06 16:18:25 --- The fix is in the current git tree (commit 930f8f5af615dc427f6acbdadc082a741aebdd72) if you want to test it to make sure it fixes the bug.
http://bugs.winehq.org/show_bug.cgi?id=14732
--- Comment #10 from ne4@parsoma.net 2008-10-07 14:09:55 --- (In reply to comment #9)
The fix is in the current git tree (commit 930f8f5af615dc427f6acbdadc082a741aebdd72) if you want to test it to make sure it fixes the bug.
Yes, it fixes this bug for me.
http://bugs.winehq.org/show_bug.cgi?id=14732
Dylan Smith dylan.ah.smith@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED
--- Comment #11 from Dylan Smith dylan.ah.smith@gmail.com 2008-10-07 14:34:24 --- Thanks. I'm marking it as fixed.
http://bugs.winehq.org/show_bug.cgi?id=14732
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #12 from Alexandre Julliard julliard@winehq.org 2008-10-10 10:10:35 --- Closing bugs fixed in 1.1.6.