Skip to content
Commit 7431bfb1 authored by Jan Kundrát's avatar Jan Kundrát
Browse files

GUI: prevent possible division by zero

I'm not sure how I triggered this, but I managed to do so and got SIGFPE as a
result:

 #0  0x000000000046e975 in Gui::ComposeWidget::calculateMaxVisibleRecipients (this=0x40e0090) at /home/jkt/work/prog/trojita/src/Gui/ComposeWidget.cpp:497
 #1  0x0000000000474ae4 in Gui::ComposeWidget::eventFilter (this=0x40e0090, o=<optimized out>, e=<optimized out>) at /home/jkt/work/prog/trojita/src/Gui/ComposeWidget.cpp:890
 #2  0x00007ffff6ccdbf5 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<optimized out>, receiver=0x20e6540, event=0x7fffffffbbf0) at kernel/qcoreapplication.cpp:1059
 #3  0x00007ffff7222377 in notify_helper (e=0x7fffffffbbf0, receiver=0x20e6540, this=0x90f1b0) at kernel/qapplication.cpp:4558
 #4  QApplicationPrivate::notify_helper (this=0x90f1b0, receiver=0x20e6540, e=0x7fffffffbbf0) at kernel/qapplication.cpp:4534
 #5  0x00007ffff72277bc in QApplication::notify (this=0x7fffffffd9a0, receiver=0x20e6540, e=0x7fffffffbbf0) at kernel/qapplication.cpp:4423
 #6  0x00007ffff6ccda3c in QCoreApplication::notifyInternal (this=0x7fffffffd9a0, receiver=0x20e6540, event=0x7fffffffbbf0) at kernel/qcoreapplication.cpp:949
 #7  0x00007ffff72cee1e in sendEvent (event=0x7fffffffbbf0, receiver=0x20e6540) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
 #8  QWidgetPrivate::setGeometry_sys (this=0x4a6c110, x=<optimized out>, y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=true) at kernel/qwidget_x11.cpp:2658
 #9  0x00007ffff727c8fd in QWidget::setGeometry (this=0x20e6540, r=...) at kernel/qwidget.cpp:6974
 #10 0x00007ffff76dd9d4 in QSplitterPrivate::setGeo (this=0x4369080, sls=0x25e9f40, p=0, s=660, allowCollapse=false) at widgets/qsplitter.cpp:750
 #11 0x00007ffff76e09e9 in QSplitterPrivate::doResize (this=0x4369080) at widgets/qsplitter.cpp:549
 #12 0x00007ffff728282e in QWidget::event (this=0x41ecce0, event=0x7fffffffc850) at kernel/qwidget.cpp:8541
 #13 0x00007ffff72223bc in notify_helper (e=0x7fffffffc850, receiver=0x41ecce0, this=0x90f1b0) at kernel/qapplication.cpp:4562
 #14 QApplicationPrivate::notify_helper (this=0x90f1b0, receiver=0x41ecce0, e=0x7fffffffc850) at kernel/qapplication.cpp:4534
 #15 0x00007ffff72277bc in QApplication::notify (this=0x7fffffffd9a0, receiver=0x41ecce0, e=0x7fffffffc850) at kernel/qapplication.cpp:4423
 #16 0x00007ffff6ccda3c in QCoreApplication::notifyInternal (this=0x7fffffffd9a0, receiver=0x41ecce0, event=0x7fffffffc850) at kernel/qcoreapplication.cpp:949
 #17 0x00007ffff72cee1e in sendEvent (event=0x7fffffffc850, receiver=0x41ecce0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
 #18 QWidgetPrivate::setGeometry_sys (this=0x4369080, x=<optimized out>, y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=true) at kernel/qwidget_x11.cpp:2658
 #19 0x00007ffff727c8fd in QWidget::setGeometry (this=0x41ecce0, r=...) at kernel/qwidget.cpp:6974
 #20 0x00007ffff76dd9d4 in QSplitterPrivate::setGeo (this=0x47021d0, sls=0x2fb5370, p=0, s=78, allowCollapse=false) at widgets/qsplitter.cpp:750
 #21 0x00007ffff76e09e9 in QSplitterPrivate::doResize (this=0x47021d0) at widgets/qsplitter.cpp:549
 #22 0x00007ffff76e11e0 in QSplitterPrivate::recalc (this=0x47021d0, update=true) at widgets/qsplitter.cpp:463
 #23 0x00007ffff76e13e3 in QSplitter::event (this=0x1efa310, e=0x4097960) at widgets/qsplitter.cpp:1378
 #24 0x00007ffff72223bc in notify_helper (e=0x4097960, receiver=0x1efa310, this=0x90f1b0) at kernel/qapplication.cpp:4562
 #25 QApplicationPrivate::notify_helper (this=0x90f1b0, receiver=0x1efa310, e=0x4097960) at kernel/qapplication.cpp:4534
 #26 0x00007ffff72277bc in QApplication::notify (this=0x7fffffffd9a0, receiver=0x1efa310, e=0x4097960) at kernel/qapplication.cpp:4423
 #27 0x00007ffff6ccda3c in QCoreApplication::notifyInternal (this=0x7fffffffd9a0, receiver=0x1efa310, event=0x4097960) at kernel/qcoreapplication.cpp:949
 #28 0x00007ffff6cd1c3a in sendEvent (event=0x4097960, receiver=0x1efa310) at kernel/qcoreapplication.h:231
 #29 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<optimized out>, data=0x90ee20) at kernel/qcoreapplication.cpp:1573
 #30 0x00007ffff6d03887 in sendPostedEvents () at kernel/qcoreapplication.h:236
 #31 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:280
 #32 0x00007ffff2b24ad3 in g_main_dispatch (context=0x910450) at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gmain.c:3054
 #33 g_main_context_dispatch (context=0x910450) at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gmain.c:3630
 #34 0x00007ffff2b24e38 in g_main_context_iterate (dispatch=1, block=<optimized out>, context=0x910450, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gmain.c:3701
 #35 g_main_context_iterate (context=0x910450, block=<optimized out>, dispatch=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gmain.c:3638
 #36 0x00007ffff2b24f2c in g_main_context_iteration (context=0x910450, may_block=1) at /var/tmp/portage/dev-libs/glib-2.36.4-r1/work/glib-2.36.4/glib/gmain.c:3762
 #37 0x00007ffff6d03d3f in QEventDispatcherGlib::processEvents (this=0x90c7e0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
 #38 0x00007ffff72dd4c6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
 #39 0x00007ffff6ccbf12 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
 #40 0x00007ffff6ccc287 in QEventLoop::exec (this=0x7fffffffd540, flags=...) at kernel/qeventloop.cpp:204
 #41 0x00007ffff6cd1f95 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1221
 #42 0x000000000043a317 in main (argc=1, argv=<optimized out>) at /home/jkt/work/prog/trojita/src/Gui/main.cpp:86

REVIEW: 114665
parent 4d4c0d73
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment