Bug 368154 - filelight crashes if invoked without a directory parameter
Summary: filelight crashes if invoked without a directory parameter
Status: RESOLVED INTENTIONAL
Alias: None
Product: filelight
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Martin Sandsmark
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-02 13:52 UTC by Kwanza.Pili
Modified: 2018-04-04 18:26 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kwanza.Pili 2016-09-02 13:52:26 UTC
If I run filelight without any parameters, it crashes with the following backtrace:
#0  0x00007fffe554e313 in RadialMap::Map::paint (this=0x5555558dd618, 
    antialias=<optimized out>)
    at /usr/src/debug/filelight-16.08.0/src/part/radialMap/map.cpp:322
#1  0x00007ffff5db5992 in QWidget::event(QEvent*) ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#2  0x00007ffff5d71a2c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /opt/kde/lib64/libQt5Widgets.so.5
#3  0x00007ffff5d78be1 in QApplication::notify(QObject*, QEvent*) ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#4  0x00007ffff5251688 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    () from /opt/kde/lib64/libQt5Core.so.5
#5  0x00007ffff5da7ad4 in QWidgetPrivate::propagatePaletteChange() ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#6  0x00007ffff5da7cc5 in QWidgetPrivate::setPalette_helper(QPalette const&) ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#7  0x00007ffff5da7d3e in QWidgetPrivate::resolvePalette() ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#8  0x00007ffff5da7b4c in QWidgetPrivate::propagatePaletteChange() ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#9  0x00007ffff5da7cc5 in QWidgetPrivate::setPalette_helper(QPalette const&) ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#10 0x00007ffff5da7d3e in QWidgetPrivate::resolvePalette() ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#11 0x00007ffff5da7b4c in QWidgetPrivate::propagatePaletteChange() ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#12 0x00007ffff5da7cc5 in QWidgetPrivate::setPalette_helper(QPalette const&) ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#13 0x00007ffff5da7d3e in QWidgetPrivate::resolvePalette() ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#14 0x00007ffff5da7b4c in QWidgetPrivate::propagatePaletteChange() ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#15 0x00007ffff5da7cc5 in QWidgetPrivate::setPalette_helper(QPalette const&) ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#16 0x00007ffff5da7d3e in QWidgetPrivate::resolvePalette() ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#17 0x00007ffff5da7b4c in QWidgetPrivate::propagatePaletteChange() ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#18 0x00007ffff5da7cc5 in QWidgetPrivate::setPalette_helper(QPalette const&) ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#19 0x00007ffff5da7d3e in QWidgetPrivate::resolvePalette() ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#20 0x00007ffff5db5d2b in QWidget::event(QEvent*) ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#21 0x00007ffff5eabadb in QMainWindow::event(QEvent*) ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#22 0x00007ffff78eb9c7 in KMainWindow::event(QEvent*) ()
   from /opt/kde/lib64/libKF5XmlGui.so.5
#23 0x00007ffff792e3f5 in KXmlGuiWindow::event(QEvent*) ()
   from /opt/kde/lib64/libKF5XmlGui.so.5
#24 0x00007ffff5d71a2c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /opt/kde/lib64/libQt5Widgets.so.5
#25 0x00007ffff5d78be1 in QApplication::notify(QObject*, QEvent*) ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#26 0x00007ffff5251688 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    () from /opt/kde/lib64/libQt5Core.so.5
#27 0x00007ffff5d74a5b in QApplicationPrivate::setPalette_helper(QPalette const&, char const*, bool) () from /opt/kde/lib64/libQt5Widgets.so.5
#28 0x00007fffe5d07472 in Qt5CTPlatformTheme::applySettings() ()
   from /opt/kde/lib64/qt5/plugins/platformthemes/libqt5ct.so
#29 0x00007ffff527c831 in QObject::event(QEvent*) ()
   from /opt/kde/lib64/libQt5Core.so.5
#30 0x00007ffff5d71a2c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /opt/kde/lib64/libQt5Widgets.so.5
#31 0x00007ffff5d78be1 in QApplication::notify(QObject*, QEvent*) ()
   from /opt/kde/lib64/libQt5Widgets.so.5
#32 0x00007ffff5251688 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    () from /opt/kde/lib64/libQt5Core.so.5
#33 0x00007ffff5253cdd in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /opt/kde/lib64/libQt5Core.so.5
#34 0x00007ffff52a2853 in ?? () from /opt/kde/lib64/libQt5Core.so.5
#35 0x00007ffff0073ba7 in g_main_context_dispatch ()
   from /opt/gnome/lib64/libglib-2.0.so.0
#36 0x00007ffff0073dd8 in ?? () from /opt/gnome/lib64/libglib-2.0.so.0
#37 0x00007ffff0073e7c in g_main_context_iteration ()
   from /opt/gnome/lib64/libglib-2.0.so.0
#38 0x00007ffff52a2c5f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/kde/lib64/libQt5Core.so.5
#39 0x00007ffff524f7ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/kde/lib64/libQt5Core.so.5
#40 0x00007ffff5257b3d in QCoreApplication::exec() ()
   from /opt/kde/lib64/libQt5Core.so.5
#41 0x000055555555e27f in main (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/filelight-16.08.0/src/app/main.cpp:98

Note that this does not happen if filelight is started from a terminal as "filelight <dir>".
Versions of files (however this behaviour was present in prior version):
filelight 16.08.0
KF5 5.25.0
Plasma 5.7.4
QT5 5.7.0

Reproducible: Always

Steps to Reproduce:
1. Start filelight from desktop menu or a terminal
2. Do not specify any parameters
3.

Actual Results:  
Segmentation fault after it issues: "Found the following local filesystems: ..."

Expected Results:  
Scan of filesystems
Comment 1 Martin Sandsmark 2016-09-04 11:00:07 UTC
Can't reproduce it here.

Extremely weird place to crash, the line is «a[0] = a[2] - a_max / 2;», and a is a normal stack-allocated uint array.

Can you try running it with valgrind, and see if anything interesting pops up before it crashes?
Comment 2 Kwanza.Pili 2016-09-04 19:34:44 UTC
Thanks. The output from valgrind is shown below:

Found the following remote filesystems:  ()
Found the following local filesystems:  ("/home/", "/boot/", "/opt/", "/tmp/", "
/usr/src/", "/var/", "/local/")
==10565== Warning: invalid file descriptor 1024 in syscall close()
==10565== Warning: invalid file descriptor 1025 in syscall close()
==10565== Warning: invalid file descriptor 1026 in syscall close()
==10565== Warning: invalid file descriptor 1027 in syscall close()
==10565==    Use --log-fd=<number> to select an alternative log fd.
==10565== Warning: invalid file descriptor 1028 in syscall close()
==10565== Warning: invalid file descriptor 1029 in syscall close()
==10544== Invalid read of size 8
==10544==    at 0x184B3313: RadialMap::Map::paint(bool) (map.cpp:322)
==10544==    by 0x6B5B991: QWidget::event(QEvent*) (in /opt/kde/lib64/libQt5Widg
ets.so.5.7.0)
==10544==    by 0x6B17A2B: QApplicationPrivate::notify_helper(QObject*, QEvent*)
 (in /opt/kde/lib64/libQt5Widgets.so.5.7.0)
==10544==    by 0x6B1EBE0: QApplication::notify(QObject*, QEvent*) (in /opt/kde/
lib64/libQt5Widgets.so.5.7.0)
==10544==    by 0x79E0687: QCoreApplication::notifyInternal2(QObject*, QEvent*)
(in /opt/kde/lib64/libQt5Core.so.5.7.0)
==10544==    by 0x6B4DAD3: QWidgetPrivate::propagatePaletteChange() (in /opt/kde
/lib64/libQt5Widgets.so.5.7.0)
==10544==    by 0x6B4DCC4: QWidgetPrivate::setPalette_helper(QPalette const&) (i
n /opt/kde/lib64/libQt5Widgets.so.5.7.0)
==10544==    by 0x6B4DD3D: QWidgetPrivate::resolvePalette() (in /opt/kde/lib64/l
ibQt5Widgets.so.5.7.0)
==10544==    by 0x6B4DB4B: QWidgetPrivate::propagatePaletteChange() (in /opt/kde
/lib64/libQt5Widgets.so.5.7.0)
==10544==    by 0x6B4DCC4: QWidgetPrivate::setPalette_helper(QPalette const&) (i
n /opt/kde/lib64/libQt5Widgets.so.5.7.0)
==10544==    by 0x6B4DD3D: QWidgetPrivate::resolvePalette() (in /opt/kde/lib64/l
ibQt5Widgets.so.5.7.0)
==10544==    by 0x6B4DB4B: QWidgetPrivate::propagatePaletteChange() (in /opt/kde
/lib64/libQt5Widgets.so.5.7.0)
==10544==  Address 0x90 is not stack'd, malloc'd or (recently) free'd
==10544==
==10544==
==10544== Process terminating with default action of signal 11 (SIGSEGV)
==10544==  Access not within mapped region at address 0x90
==10544==    at 0x184B3313: RadialMap::Map::paint(bool) (map.cpp:322)
==10544==    by 0x6B5B991: QWidget::event(QEvent*) (in /opt/kde/lib64/libQt5Widg
ets.so.5.7.0)
==10544==    by 0x6B17A2B: QApplicationPrivate::notify_helper(QObject*, QEvent*)
 (in /opt/kde/lib64/libQt5Widgets.so.5.7.0)
==10544==    by 0x6B1EBE0: QApplication::notify(QObject*, QEvent*) (in /opt/kde/
lib64/libQt5Widgets.so.5.7.0)
==10544==    by 0x79E0687: QCoreApplication::notifyInternal2(QObject*, QEvent*)
(in /opt/kde/lib64/libQt5Core.so.5.7.0)
==10544==    by 0x6B4DAD3: QWidgetPrivate::propagatePaletteChange() (in /opt/kde
/lib64/libQt5Widgets.so.5.7.0)
==10544==    by 0x6B4DCC4: QWidgetPrivate::setPalette_helper(QPalette const&) (i
n /opt/kde/lib64/libQt5Widgets.so.5.7.0)
==10544==    by 0x6B4DD3D: QWidgetPrivate::resolvePalette() (in /opt/kde/lib64/l
ibQt5Widgets.so.5.7.0)
==10544==    by 0x6B4DB4B: QWidgetPrivate::propagatePaletteChange() (in /opt/kde
/lib64/libQt5Widgets.so.5.7.0)
==10544==    by 0x6B4DCC4: QWidgetPrivate::setPalette_helper(QPalette const&) (i
n /opt/kde/lib64/libQt5Widgets.so.5.7.0)
==10544==    by 0x6B4DD3D: QWidgetPrivate::resolvePalette() (in /opt/kde/lib64/l
ibQt5Widgets.so.5.7.0)
==10544==    by 0x6B4DB4B: QWidgetPrivate::propagatePaletteChange() (in /opt/kde
/lib64/libQt5Widgets.so.5.7.0)
==10544==  If you believe this happened as a result of a stack
==10544==  overflow in your program's main thread (unlikely but
==10544==  possible), you can try to increase the size of the
==10544==  main thread stack using the --main-stacksize= flag.
==10544==  The main thread stack size used in this run was 8388608.
==10544==
==10544== HEAP SUMMARY:
==10544==     in use at exit: 4,892,462 bytes in 47,584 blocks
==10544==   total heap usage: 485,350 allocs, 437,766 frees, 2,685,711,896 bytes
 allocated
==10544==
==10544== 80 bytes in 1 blocks are possibly lost in loss record 2,950 of 4,827
==10544==    at 0x4C2B11F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd
64-linux.so)
==10544==    by 0xE7E7888: __glDispatchInit (in /usr/lib64/libGLdispatch.so.0)
==10544==    by 0xE58F6E4: _init (in /usr/lib64/libGLX.so.0)
==10544==    by 0x400F429: call_init.part.0 (in /lib64/ld-2.24.so)
==10544==    by 0x400F57A: _dl_init (in /lib64/ld-2.24.so)
==10544==    by 0x4000CF9: ??? (in /lib64/ld-2.24.so)
==10544==
==10544== 80 bytes in 1 blocks are possibly lost in loss record 2,951 of 4,827
==10544==    at 0x4C2B11F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd
64-linux.so)
==10544==    by 0xE7E84BA: __glDispatchRegisterStubCallbacks (in /usr/lib64/libG
Ldispatch.so.0)
==10544==    by 0xACC474A: _init (in /usr/lib64/libGL.so.1.0.0)
==10544==    by 0x400F429: call_init.part.0 (in /lib64/ld-2.24.so)
==10544==    by 0x400F57A: _dl_init (in /lib64/ld-2.24.so)
==10544==    by 0x4000CF9: ??? (in /lib64/ld-2.24.so)
==10544==
==10544== 368 bytes in 1 blocks are possibly lost in loss record 4,236 of 4,827
==10544==    at 0x4C2D0E5: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd
64-linux.so)
==10544==    by 0x4011B01: allocate_dtv (in /lib64/ld-2.24.so)
==10544==    by 0x401248D: _dl_allocate_tls (in /lib64/ld-2.24.so)
==10544==    by 0xA86C019: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.2
4.so)
==10544==    by 0x7820DA8: QThread::start(QThread::Priority) (in /opt/kde/lib64/
libQt5Core.so.5.7.0)
==10544==    by 0x12467888: ??? (in /opt/kde/lib64/libQt5XcbQpa.so.5.7.0)
==10544==    by 0x1246CE35: QXcbConnection::QXcbConnection(QXcbNativeInterface*,
 bool, unsigned int, char const*) (in /opt/kde/lib64/libQt5XcbQpa.so.5.7.0)
==10544==    by 0x124703DD: QXcbIntegration::QXcbIntegration(QStringList const&,
 int&, char**) (in /opt/kde/lib64/libQt5XcbQpa.so.5.7.0)
==10544==    by 0x40897FC: ??? (in /opt/kde/lib64/qt5/plugins/platforms/libqxcb.
so)
==10544==    by 0x70E7C3C: QPlatformIntegrationFactory::create(QString const&, Q
StringList const&, int&, char**, QString const&) (in /opt/kde/lib64/libQt5Gui.so
.5.7.0)
==10544==    by 0x70F5271: QGuiApplicationPrivate::createPlatformIntegration() (
in /opt/kde/lib64/libQt5Gui.so.5.7.0)
==10544==    by 0x70F5CFC: QGuiApplicationPrivate::createEventDispatcher() (in /
opt/kde/lib64/libQt5Gui.so.5.7.0)
==10544==
==10544== 368 bytes in 1 blocks are possibly lost in loss record 4,237 of 4,827
==10544==    at 0x4C2D0E5: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd
64-linux.so)
==10544==    by 0x4011B01: allocate_dtv (in /lib64/ld-2.24.so)
==10544==    by 0x401248D: _dl_allocate_tls (in /lib64/ld-2.24.so)
==10544==    by 0xA86C019: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.2
4.so)
==10544==    by 0x7820DA8: QThread::start(QThread::Priority) (in /opt/kde/lib64/
libQt5Core.so.5.7.0)
==10544==    by 0x415AE33: ??? (in /opt/kde/lib64/libQt5DBus.so.5.7.0)
==10544==    by 0x415C21B: QDBusConnection::systemBus() (in /opt/kde/lib64/libQt
5DBus.so.5.7.0)
==10544==    by 0x187409EA: ??? (in /opt/kde/lib64/libKF5Solid.so.5.25.0)
==10544==    by 0x186FFBD3: ??? (in /opt/kde/lib64/libKF5Solid.so.5.25.0)
==10544==    by 0x187025E2: ??? (in /opt/kde/lib64/libKF5Solid.so.5.25.0)
==10544==    by 0x18702794: ??? (in /opt/kde/lib64/libKF5Solid.so.5.25.0)
==10544==    by 0x187027C3: ??? (in /opt/kde/lib64/libKF5Solid.so.5.25.0)
==10544==
==10544== 1,870 (1,536 direct, 334 indirect) bytes in 6 blocks are definitely lo
st in loss record 4,585 of 4,827
==10544==    at 0x4C2B11F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd
64-linux.so)
==10544==    by 0x147EDD89: ??? (in /usr/lib64/libfontconfig.so.1.9.2)
==10544==    by 0x147EE4E1: ??? (in /usr/lib64/libfontconfig.so.1.9.2)
==10544==    by 0x147EF83A: ??? (in /usr/lib64/libfontconfig.so.1.9.2)
==10544==    by 0x147F5C9F: ??? (in /usr/lib64/libfontconfig.so.1.9.2)
==10544==    by 0x1589DCBF: ??? (in /usr/lib64/libexpat.so.1.6.0)
==10544==    by 0x1589E630: ??? (in /usr/lib64/libexpat.so.1.6.0)
==10544==    by 0x158A05BE: XML_ParseBuffer (in /usr/lib64/libexpat.so.1.6.0)
==10544==    by 0x147F3EAA: FcConfigParseAndLoad (in /usr/lib64/libfontconfig.so
.1.9.2)
==10544==    by 0x147F41B6: FcConfigParseAndLoad (in /usr/lib64/libfontconfig.so
.1.9.2)
==10544==    by 0x147F4B12: ??? (in /usr/lib64/libfontconfig.so.1.9.2)
==10544==    by 0x1589DCBF: ??? (in /usr/lib64/libexpat.so.1.6.0)
==10544==
==10544== 3,742 (3,072 direct, 670 indirect) bytes in 12 blocks are definitely l
ost in loss record 4,664 of 4,827
==10544==    at 0x4C2B11F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd
64-linux.so)
==10544==    by 0x147EDD89: ??? (in /usr/lib64/libfontconfig.so.1.9.2)
==10544==    by 0x147EE4E1: ??? (in /usr/lib64/libfontconfig.so.1.9.2)
==10544==    by 0x147EF83A: ??? (in /usr/lib64/libfontconfig.so.1.9.2)
==10544==    by 0x147F5C9F: ??? (in /usr/lib64/libfontconfig.so.1.9.2)
==10544==    by 0x1589DCBF: ??? (in /usr/lib64/libexpat.so.1.6.0)
==10544==    by 0x1589E630: ??? (in /usr/lib64/libexpat.so.1.6.0)
==10544==    by 0x1589C9F0: ??? (in /usr/lib64/libexpat.so.1.6.0)
==10544==    by 0x1589D17C: ??? (in /usr/lib64/libexpat.so.1.6.0)
==10544==    by 0x158A05BE: XML_ParseBuffer (in /usr/lib64/libexpat.so.1.6.0)
==10544==    by 0x147F3EAA: FcConfigParseAndLoad (in /usr/lib64/libfontconfig.so
.1.9.2)
==10544==    by 0x147F41B6: FcConfigParseAndLoad (in /usr/lib64/libfontconfig.so
.1.9.2)
==10544==
==10544== 282,207 bytes in 1 blocks are possibly lost in loss record 4,825 of 4,
827
==10544==    at 0x4C2D0E5: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd
64-linux.so)
==10544==    by 0x1C5D64D2: ??? (in /usr/lib64/libGLX_nvidia.so.367.35)
==10544==    by 0x1DA5FA00: ??? (in /usr/lib64/libnvidia-glcore.so.367.35)
==10544==    by 0x1D6E3BD0: ??? (in /usr/lib64/libnvidia-glcore.so.367.35)
==10544==    by 0x1C5A700C: ??? (in /usr/lib64/libGLX_nvidia.so.367.35)
==10544==    by 0x1C5AE7C8: ??? (in /usr/lib64/libGLX_nvidia.so.367.35)
==10544==    by 0x1C574D7E: ??? (in /usr/lib64/libGLX_nvidia.so.367.35)
==10544==    by 0x400F429: call_init.part.0 (in /lib64/ld-2.24.so)
==10544==    by 0x400F57A: _dl_init (in /lib64/ld-2.24.so)
==10544==    by 0x4013AA7: dl_open_worker (in /lib64/ld-2.24.so)
==10544==    by 0x400F313: _dl_catch_error (in /lib64/ld-2.24.so)
==10544==    by 0x4013248: _dl_open (in /lib64/ld-2.24.so)
==10544==
==10544== LEAK SUMMARY:
==10544==    definitely lost: 4,608 bytes in 18 blocks
==10544==    indirectly lost: 1,004 bytes in 36 blocks
==10544==      possibly lost: 283,103 bytes in 5 blocks
==10544==    still reachable: 4,603,747 bytes in 47,525 blocks
==10544==                       of which reachable via heuristic:
==10544==                         newarray           : 272 bytes in 8 blocks
==10544==                         multipleinheritance: 304 bytes in 2 blocks
==10544==         suppressed: 0 bytes in 0 blocks
==10544== Reachable blocks (those to which a pointer was found) are not shown.
==10544== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==10544==
==10544== For counts of detected and suppressed errors, rerun with: -v
==10544== ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)