http://bugs.winehq.org/show_bug.cgi?id=15227
Summary: orb installer crashes when showing eula Product: Wine Version: 1.1.3 Platform: PC URL: http://www.orb.com/en/download_orb OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: richedit AssignedTo: wine-bugs@winehq.org ReportedBy: knan-wine@anduin.net CC: dank@kegel.com
Created an attachment (id=15990) --> (http://bugs.winehq.org/attachment.cgi?id=15990) console output
Orb installer becomes unresponsive and gives a backtrace while showing its EULA.
(wine Orb20SetupUs.exe)
Regression, caused by:
[59195ed2ec9dbec80e558c0ccdf35d24eec15c01] richedit: Added in support for streaming in and out nested tables. (Dylan Smith dylan.ah.smith@gmail.com 2008-08-07 18:31:46)
Doesn't revert cleanly on current git. At least not without reverting other riched patches first.
http://bugs.winehq.org/show_bug.cgi?id=15227
knan-wine@anduin.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dylan.ah.smith@gmail.com URL|http://www.orb.com/en/downlo%7Chttp://www.orb.com/en/downlo |ad_orb |ad_orb Keywords| |download, regression
http://bugs.winehq.org/show_bug.cgi?id=15227
Dylan Smith dylan.ah.smith@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1
--- Comment #1 from Dylan Smith dylan.ah.smith@gmail.com 2008-09-10 14:34:52 --- I caused the bug, and I can reproduce the error, so I'll take care of it.
http://bugs.winehq.org/show_bug.cgi?id=15227
--- Comment #2 from Dylan Smith dylan.ah.smith@gmail.com 2008-09-10 20:19:04 --- What is happening currently, is that the control word \itap4 is changing the nesting level, and thus creating a table. However, all of the \itap4 control words are contained within an optional destination {*\pgptbl ... } which isn't recognized, and thus it is skipped. This leads us to issue number one, the fact that skipped control words are not actually skipped.
The reason for the above issue happening is that a lot of logic is happening in the read hook for the RTF parser. Most of This logic should be moved to class callbacks so skipped groups are actually skipped.
The above issue ended up causing the RTF document to appear as if it had an unterminated table, which it is supposed to delete. Issue number two is the bugs in handling this case that caused the program to crash.
http://bugs.winehq.org/show_bug.cgi?id=15227
Dylan Smith dylan.ah.smith@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|wine-bugs@winehq.org |dylan.ah.smith@gmail.com
--- Comment #3 from Dylan Smith dylan.ah.smith@gmail.com 2008-09-10 20:41:39 --- Created an attachment (id=16002) --> (http://bugs.winehq.org/attachment.cgi?id=16002) richedit: Fixed bugs in handling unterminated nested tables in RTF.
I fixed the second issue that I mentioned that caused the actual crash, however the EULA will be blank since it is considered to be a unterminated table, so it is deleted.
I will need to fix the other issue in another patch.
http://bugs.winehq.org/show_bug.cgi?id=15227
--- Comment #4 from Dylan Smith dylan.ah.smith@gmail.com 2008-09-10 21:52:18 --- Created an attachment (id=16003) --> (http://bugs.winehq.org/attachment.cgi?id=16003) richedit: Avoid acting on control words in skipped RTF groups
This patch fixes the first issue that I mentioned above. This patch alone will fix the regression, however, the other patch is still needed to fix the other issue rather than hiding the issue.
Please apply the patches and let me know if any issues remain for this bug.
http://bugs.winehq.org/show_bug.cgi?id=15227
Dylan Smith dylan.ah.smith@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
http://bugs.winehq.org/show_bug.cgi?id=15227
--- Comment #5 from knan-wine@anduin.net 2008-09-11 12:05:24 --- After applying both patches to yesterday's git head, I get a compile warning:
editor.c: In function ‘ME_StreamIn’: editor.c:1464: warning: ‘para’ may be used uninitialised in this function
... but it stops crashing, and looks good. :)
Looks like your second patch is in git now?
http://bugs.winehq.org/show_bug.cgi?id=15227
--- Comment #6 from Dylan Smith dylan.ah.smith@gmail.com 2008-09-11 13:15:31 --- Thanks for letting me know that the patch was in git. Somehow I didn't notice that until you mentioned it.
The compiler warning that you mentioned isn't something that I got. Maybe you are using a newer version of gcc or something, but it does seem to be a valid warning. That is probably why the patch wasn't accepted.
http://bugs.winehq.org/show_bug.cgi?id=15227
--- Comment #7 from knan-wine@anduin.net 2008-09-11 13:28:24 --- gcc 4.2.3 on this end. Pretty recent, february this year.
http://bugs.winehq.org/show_bug.cgi?id=15227
--- Comment #8 from Dylan Smith dylan.ah.smith@gmail.com 2008-09-11 13:43:01 --- $ gcc --version | head -1 gcc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
$ git checkout origin HEAD is now at 4b4109a... ws2_32: Win98 closesocket() does not wake up select.
$ make editor.o gcc -c -I. -I. -I../../include -I../../include -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -ggdb -O0 -o editor.o editor.c
The only thing different about gcc would be any Ubuntu specific patches. The only compiler flags that I changed were "-ggdb -O0". Oh well, I'll just have to look over my patches more carefully.
Anyways, I submitted new patch to wine-patches, so I will wait and see if that gets accepted.
http://bugs.winehq.org/show_bug.cgi?id=15227
--- Comment #9 from Dan Kegel dank@kegel.com 2008-09-11 13:54:07 --- Unused variable warnings don't show up until -O2. You should always compile with -O2 before sending patches.
http://bugs.winehq.org/show_bug.cgi?id=15227
--- Comment #10 from Dylan Smith dylan.ah.smith@gmail.com 2008-09-11 14:06:18 --- (In reply to comment #9)
Unused variable warnings don't show up until -O2. You should always compile with -O2 before sending patches.
Thanks for advice. I actually just noticed this while reading through the warning options in the man pages for gcc. I'm glad to have figured that out.
http://bugs.winehq.org/show_bug.cgi?id=15227
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-09-12 12:50:49 --- My patches got committed into the git repository, so the bug is now fixed.
Commits that fixed the bugs: 9a7d475db8f86af8dcc8b5bbcca26d332bf228e0 richedit: Avoid acting on control words in skipped RTF groups. fab258022e3a02557060aade0f6371918328b987 richedit: Fixed bugs in handling unterminated nested tables in RTF.
http://bugs.winehq.org/show_bug.cgi?id=15227
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #12 from Alexandre Julliard julliard@winehq.org 2008-09-19 11:17:48 --- Closing bugs fixed in 1.1.5.