View Issue Details

IDProjectCategoryView StatusLast Update
0012630ScribusGeneralpublic2014-08-31 18:22
ReporterFirasH Assigned Tojghali  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version1.5.0svn 
Target Version1.5.0Fixed in Version1.5.0svn 
Summary0012630: [PATCH] Pressing "Esc" while item specific window is opened crashes Scribus
DescriptionPressing "Esc" while item specific window is opened crashes Scribus.
Reproduced on FreeBSD and Linux.
Steps To Reproduce0) Create a new document
1) Insert one of those items: Polygon/Arc/Spiral
2) Double-click on the item
3) Select the window that appears
4) Press "Esc"

Scribus crashes due to Signal 11
Additional Information1.5.0.svn (19430)


Spiral dialog backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff6e8a03c in QDialog::reject() () from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
(gdb) bt
 0 0x00007ffff6e8a03c in QDialog::reject() ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
 1 0x00000000011542e1 in ScrPaletteBase::reject (this=0x32269a0)
    at /home/.../Scribus/scribus/ui/scrpalettebase.cpp:224
 2 0x00007ffff6e8c506 in QDialog::keyPressEvent(QKeyEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
 3 0x00007ffff6cc5c9d in QWidget::event(QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
 4 0x00007ffff6c8da94 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
 5 0x00007ffff6c91994 in QApplication::notify(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
 6 0x00007ffff7658f04 in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
 7 0x00007ffff6ce89f0 in ?? ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
 8 0x00007ffff6c8da94 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
 9 0x00007ffff6c910b6 in QApplication::notify(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
 10 0x00007ffff7658f04 in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
 11 0x00007ffff6504c3a in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Gui.so.5
 12 0x00007ffff650cf55 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Gui.so.5
 13 0x00007ffff64f2208 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Gui.so.5
 14 0x00007fffe548c460 in ?? ()
   from /home/.../Qt/5.3/gcc_64/plugins/platforms/libqxcb.so
 15 0x00007fffecddd316 in g_main_dispatch (context=0x7fffe0001740)
    at gmain.c:3066
 16 g_main_context_dispatch (context=context@entry=0x7fffe0001740)
    at gmain.c:3642
 17 0x00007fffecddd668 in g_main_context_iterate (context=context@entry=0x7fffe0001740, block=block@entry=1,
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3713
 18 0x00007fffecddd70c in g_main_context_iteration (context=0x7fffe0001740, may_block=1)
    at gmain.c:3774
 19 0x00007ffff76b3574 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
 20 0x00007ffff765711b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
 21 0x00007ffff765bfe5 in QCoreApplication::exec() ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
 22 0x0000000001243430 in mainApp (argc=1, argv=0x7fffffffdd18)
    at /home/.../Scribus/scribus/main_nix.cpp:86
 23 0x00000000012433c0 in main (argc=1, argv=0x7fffffffdd18)
    at /home/.../Scribus/scribus/main_nix.cpp:54
TagsNo tags attached.
Patch

Activities

FirasH

2014-08-23 22:53

reporter  

12630.diff (688 bytes)   
Index: scribus/ui/scrpalettebase.cpp
===================================================================
--- scribus/ui/scrpalettebase.cpp	(revisione 19430)
+++ scribus/ui/scrpalettebase.cpp	(copia locale)
@@ -92,7 +92,7 @@
		show();
	else
		hide();
-	emit paletteShown(visibleOnStartup);
+	emit setPaletteShown(visibleOnStartup);
 }

 void ScrPaletteBase::setPaletteShown(bool visible)
@@ -145,7 +145,7 @@
 {
	closeEvent->ignore();
	hide();
-	emit paletteShown(false);
+	emit setPaletteShown(false);
 }

 void ScrPaletteBase::hideEvent(QHideEvent*)
@@ -220,7 +220,7 @@

 void ScrPaletteBase::reject()
 {
-	emit paletteShown(false);
+	emit setPaletteShown(false);
	QDialog::reject();
 }

12630.diff (688 bytes)   

FirasH

2014-08-23 22:55

reporter   ~0033331

I tried to figure out what was happening with gdb and ended up with the attached .diff file. With that change it doesn't crash anymore but I'm not sure if it is 100% correct (hope it is :) ).

jghali

2014-08-24 12:52

administrator   ~0033334

I found a simpler solution :-) The crash was caused by dialog being deleted in code triggered by the paletteShown() signal. Calling QDialog::reject() after that could only trigger a crash. So inverting the call order in ScrPaletteBase::reject() should be enough.

FirasH

2014-08-31 18:22

reporter   ~0033409

Thanks jghali!
Fixed in 1.5.0.svn (19468).

Issue History

Date Modified Username Field Change
2014-08-23 22:06 FirasH New Issue
2014-08-23 22:53 FirasH File Added: 12630.diff
2014-08-23 22:55 FirasH Note Added: 0033331
2014-08-23 22:55 FirasH Summary Pressing "Esc" while item specific window is opened crashes Scribus => [PATCH] Pressing "Esc" while item specific window is opened crashes Scribus
2014-08-24 12:35 jghali Target Version => 1.5.0svn
2014-08-24 12:36 jghali Target Version 1.5.0svn => 1.5.0
2014-08-24 12:52 jghali Note Added: 0033334
2014-08-24 12:52 jghali Status new => resolved
2014-08-24 12:52 jghali Fixed in Version => 1.5.0svn
2014-08-24 12:52 jghali Resolution open => fixed
2014-08-24 12:52 jghali Assigned To => jghali
2014-08-31 18:22 FirasH Note Added: 0033409
2014-08-31 18:22 FirasH Status resolved => closed