Skip to content

Segfault at startup when the UEFITool window was previously closed while maximised #479

Description

@0x5c

If you close the window while it is maximised, any further attempt at starting UEFITool will fail with a segmentation fault.

  • Deleting the geometry key from the config file reliably clears the issue until the window is next maximised before being closed. Window geometry is lost as expected on that first 'cleared' startup.
  • Deleting the windowState key from the config file reliably allows one startup to proceed cleanly, correctly restoring the window geometry but recreating the conditions where closing the window dooms further startup attempts.

UEFITool A74 built from source on void linux

gdb backtrace, segfault in main thread

#0  0x00007ffff7aa9aa2 in QDockAreaLayoutItem::skip (this=0x555555d02100) at /builddir/qt6-base-6.10.2/src/widgets/widgets/qdockarealayout.cpp:97
#1  0x00007ffff7aac8b5 in QDockAreaLayoutItem::skip (this=0x555555c6eb00) at /builddir/qt6-base-6.10.2/src/widgets/widgets/qdockarealayout.cpp:101
#2  QDockAreaLayoutInfo::next (this=0x555555c5a2e8, index=<optimized out>) at /builddir/qt6-base-6.10.2/src/widgets/widgets/qdockarealayout.cpp:1693
#3  0x00007ffff7aba889 in QDockAreaLayoutInfo::isEmpty (this=0x555555c5a2e8) at /builddir/qt6-base-6.10.2/src/widgets/widgets/qdockarealayout.cpp:265
#4  QDockAreaLayout::size_helper<QSize (QDockAreaLayoutInfo::*)() const, QSize (QLayoutItem::*)() const> (this=this@entry=0x555555c5a238, sizeFn=(QSize (QDockAreaLayoutInfo::*)(const QDockAreaLayoutInfo * const)) 0x7ffff7aa9c30 <QDockAreaLayoutInfo::size() const>, centerFn=<optimized out>) at /builddir/qt6-base-6.10.2/src/widgets/widgets/qdockarealayout.cpp:3038
#5  0x00007ffff7aaf04a in QDockAreaLayout::minimumStableSize (this=this@entry=0x555555c5a238) at /builddir/qt6-base-6.10.2/src/widgets/widgets/qdockarealayout.cpp:3097
#6  0x00007ffff7af9314 in QMainWindowLayoutState::fits (this=0x555555c5a120) at /builddir/qt6-base-6.10.2/src/widgets/widgets/qmainwindowlayout.cpp:836
#7  0x00007ffff7b06ebd in QMainWindowLayout::setGeometry (this=0x5555559c1740, _r=...) at /usr/include/c++/14.2/bits/unique_ptr.h:193
#8  0x00007ffff7962c40 in QLayoutPrivate::doResize (this=this@entry=0x5555559c0080) at /builddir/qt6-base-6.10.2/src/widgets/kernel/qlayout.cpp:497
#9  0x00007ffff7964257 in QLayout::activate (this=<optimized out>) at /builddir/qt6-base-6.10.2/src/widgets/kernel/qlayout.cpp:1107
#10 0x00007ffff7964703 in QLayout::widgetEvent (this=<optimized out>, e=e@entry=0x555555b17440) at /builddir/qt6-base-6.10.2/src/widgets/kernel/qlayout.cpp:521
#11 0x00007ffff792a8cf in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x555555840990, e=0x555555b17440) at /builddir/qt6-base-6.10.2/src/widgets/kernel/qapplication.cpp:3294
#12 0x00007ffff6a40b08 in QCoreApplication::notifyInternal2 (receiver=0x555555840990, event=0x555555b17440) at /builddir/qt6-base-6.10.2/src/corelib/kernel/qcoreapplication.cpp:1109
#13 0x00007ffff6a40d2d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /builddir/qt6-base-6.10.2/src/corelib/kernel/qcoreapplication.cpp:1549
#14 0x00007ffff6a4491e in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55555578f840) at /builddir/qt6-base-6.10.2/src/corelib/kernel/qcoreapplication.cpp:1904
#15 0x00007ffff6ce91d7 in postEventSourceDispatch (s=0x5555557ee250) at /builddir/qt6-base-6.10.2/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#16 0x00007ffff6000af6 in g_main_dispatch (context=context@entry=0x7ffff0000ef0) at ../glib/gmain.c:3591
#17 0x00007ffff6004077 in g_main_context_dispatch_unlocked (context=0x7ffff0000ef0) at ../glib/gmain.c:4451
#18 g_main_context_iterate_unlocked (context=context@entry=0x7ffff0000ef0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4516
#19 0x00007ffff60047cc in g_main_context_iteration (context=0x7ffff0000ef0, may_block=1) at ../glib/gmain.c:4582
#20 0x00007ffff6ce89f3 in QEventDispatcherGlib::processEvents (this=0x55555591e4d0, flags=...) at /builddir/qt6-base-6.10.2/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#21 0x00007ffff6a4cfe2 in QEventLoop::exec (this=this@entry=0x7fffffffb860, flags=..., flags@entry=...) at /builddir/qt6-base-6.10.2/src/corelib/global/qflags.h:77
#22 0x00007ffff6a4891c in QCoreApplication::exec () at /builddir/qt6-base-6.10.2/src/corelib/global/qflags.h:77
#23 0x00007ffff70bb960 in QGuiApplication::exec () at /builddir/qt6-base-6.10.2/src/gui/kernel/qguiapplication.cpp:1977
#24 0x00007ffff792a859 in QApplication::exec () at /builddir/qt6-base-6.10.2/src/widgets/kernel/qapplication.cpp:2575
#25 0x000055555558b7b5 in UEFIToolApplication::startup (this=this@entry=0x7fffffffb8d0) at ../UEFITool/uefitool_main.cpp:58
#26 0x0000555555586c25 in main (argc=<optimized out>, argv=<optimized out>) at ../UEFITool/uefitool_main.cpp:65

Metadata

Metadata

Assignees

Type

Fields

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions