Bug 466841 - Crash in NetstatHelper::parseSSOutput() on Firewall View Connections
Summary: Crash in NetstatHelper::parseSSOutput() on Firewall View Connections
Status: REPORTED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_firewall (show other bugs)
Version: 5.27.2
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-03-04 18:09 UTC by breathe5177
Modified: 2023-03-07 17:07 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description breathe5177 2023-03-04 18:09:10 UTC
Application: systemsettings (5.27.2)

Qt Version: 5.15.8
Frameworks Version: 5.103.0
Operating System: Linux 5.19.0-35-generic x86_64
Windowing System: X11
Distribution: KDE neon 5.27
DrKonqi: 5.27.2 [KCrashBackend]

-- Information about the crash:
After pressing "View Connections", System Settings crashes. The list of connections sometimes loads and appear briefly, especially the first time in a session, but not always.

The crash can be reproduced sometimes.

-- Backtrace:
Application: System Settings (systemsettings), signal: Aborted

[KCrash Handler]
#4  __pthread_kill_implementation (no_tid=0, signo=6, threadid=139685258647040) at ./nptl/pthread_kill.c:44
#5  __pthread_kill_internal (signo=6, threadid=139685258647040) at ./nptl/pthread_kill.c:78
#6  __GI___pthread_kill (threadid=139685258647040, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#7  0x00007f0b06642476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8  0x00007f0b066287f3 in __GI_abort () at ./stdlib/abort.c:79
#9  0x00007f0b066896f6 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f0b067dbb8c "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#10 0x00007f0b066a0d7c in malloc_printerr (str=str@entry=0x7f0b067d9764 "free(): invalid pointer") at ./malloc/malloc.c:5664
#11 0x00007f0b066a2ac4 in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at ./malloc/malloc.c:4439
#12 0x00007f0b066a54d3 in __GI___libc_free (mem=<optimized out>) at ./malloc/malloc.c:3391
#13 0x00007f0b06f5fecf in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007f0b06f5ffd2 in QString::split(QChar, QFlags<Qt::SplitBehaviorFlags>, Qt::CaseSensitivity) const () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007f0aea237a44 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/kcms/systemsettings/kcm_firewall.so
#16 0x00007f0b070f40d4 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007f0b07024ecc in QProcess::finished(int, QProcess::ExitStatus) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007f0b0702aa03 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007f0b0702ab3e in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007f0b070f4108 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007f0b070f7613 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007f0b070f7e43 in QSocketNotifier::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007f0b07f6c793 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007f0b070bc07a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007f0b071166e5 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007f0b059c7d3b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007f0b05a1c6c8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007f0b059c53e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007f0b07115ad8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007f0b070ba99b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007f0b070c2f34 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x000055972c6865f6 in ?? ()
#33 0x00007f0b06629d90 in __libc_start_call_main (main=main@entry=0x55972c685aa0, argc=argc@entry=2, argv=argv@entry=0x7ffd6b6d3848) at ../sysdeps/nptl/libc_start_call_main.h:58
#34 0x00007f0b06629e40 in __libc_start_main_impl (main=0x55972c685aa0, argc=2, argv=0x7ffd6b6d3848, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd6b6d3838) at ../csu/libc-start.c:392
#35 0x000055972c686f85 in ?? ()
[Inferior 1 (process 2047) detached]

Reported using DrKonqi
Comment 1 Nate Graham 2023-03-06 23:17:59 UTC
Thank you for the bug report! Unfortunately I can't reproduce the crash myself in 5.27.2, and the backtrace is incomplete and missing debug symbols for the following lines that we need to figure out exactly what's going wrong:
> #15 0x00007f0aea237a44 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/kcms/systemsettings/kcm_firewall.so
Could you please install debug symbols, reproduce the crash, and attach a new symbolicated backtrace? See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports

Thanks again!
Comment 2 breathe5177 2023-03-07 06:51:26 UTC
Application: System Settings (systemsettings), signal: Segmentation fault

[KCrash Handler]
#4  QArrayData::data (this=<optimized out>) at ../../include/QtCore/../../src/corelib/text/qstring.h:277
#5  QTypedArrayData<unsigned short>::data (this=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:209
#6  QString::constData (this=<optimized out>) at ../../include/QtCore/../../src/corelib/text/qstring.h:1086
#7  (anonymous namespace)::splitString<QStringList, QString> (source=..., sep=0x7ffc5c0be80e, behavior=..., cs=Qt::CaseSensitive, separatorSize=1) at text/qstring.cpp:7818
#8  0x00007fa53155ffd2 in QString::split (this=<optimized out>, sep=sep@entry=..., behavior=..., behavior@entry=..., cs=cs@entry=Qt::CaseSensitive) at text/qstring.cpp:7929
#9  0x00007fa51886ea44 in NetstatHelper::parseSSOutput (netstatOutput=..., netstatOutput=..., this=0x56463b9f7560) at backends/netstat/./kcm/backends/netstat/netstathelper.cpp:148
#10 NetstatHelper::stepExecuteFinished (this=0x56463b9f7560, exitCode=<optimized out>) at backends/netstat/./kcm/backends/netstat/netstathelper.cpp:82
#11 0x00007fa5316f40d4 in QtPrivate::QSlotObjectBase::call (a=0x7ffc5c0bea20, r=0x56463b9f7560, this=0x56463b189d50) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#12 doActivate<false> (sender=0x56463bbe8fe0, signal_index=11, argv=0x7ffc5c0bea20) at kernel/qobject.cpp:3923
#13 0x00007fa5316ed177 in QMetaObject::activate (sender=sender@entry=0x56463bbe8fe0, m=m@entry=0x7fa53195adc0 <QProcess::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffc5c0bea20) at kernel/qobject.cpp:3983
#14 0x00007fa531624ecc in QProcess::finished (this=this@entry=0x56463bbe8fe0, _t1=<optimized out>, _t2=<optimized out>) at .moc/moc_qprocess.cpp:339
#15 0x00007fa53162aa03 in QProcessPrivate::_q_processDied (this=0x56463bb9fa80) at io/qprocess.cpp:1184
#16 0x00007fa53162ab3e in QProcess::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=0x7ffc5c0beba0) at io/qprocess.h:320
#17 0x00007fa5316f4108 in doActivate<false> (sender=0x56463b2ec210, signal_index=3, argv=0x7ffc5c0beba0) at kernel/qobject.cpp:3935
#18 0x00007fa5316ed177 in QMetaObject::activate (sender=sender@entry=0x56463b2ec210, m=m@entry=0x7fa53195d1a0 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc5c0beba0) at kernel/qobject.cpp:3983
#19 0x00007fa5316f7613 in QSocketNotifier::activated (this=this@entry=0x56463b2ec210, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178
#20 0x00007fa5316f7e43 in QSocketNotifier::event (this=0x56463b2ec210, e=0x7ffc5c0becc0) at kernel/qsocketnotifier.cpp:302
#21 0x00007fa53256c793 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007fa5316bc07a in QCoreApplication::notifyInternal2 (receiver=0x56463b2ec210, event=0x7ffc5c0becc0) at kernel/qcoreapplication.cpp:1064
#23 0x00007fa5317166e5 in socketNotifierSourceDispatch (source=0x5646387502e0) at kernel/qeventdispatcher_glib.cpp:107
#24 0x00007fa52ffc7d3b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007fa53001c6c8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007fa52ffc53e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fa531715ad8 in QEventDispatcherGlib::processEvents (this=0x56463874fed0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#28 0x00007fa5316ba99b in QEventLoop::exec (this=this@entry=0x7ffc5c0beed0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#29 0x00007fa5316c2f34 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#30 0x00005646384665f6 in main (argc=<optimized out>, argv=<optimized out>) at ./app/main.cpp:188
[Inferior 1 (process 133039) detached]
Comment 3 Nate Graham 2023-03-07 17:07:56 UTC
Thanks, that's helpful!

Here's the relevant bit:

#7  (anonymous namespace)::splitString<QStringList, QString> (source=..., sep=0x7ffc5c0be80e, behavior=..., cs=Qt::CaseSensitive, separatorSize=1) at text/qstring.cpp:7818
#8  0x00007fa53155ffd2 in QString::split (this=<optimized out>, sep=sep@entry=..., behavior=..., behavior@entry=..., cs=cs@entry=Qt::CaseSensitive) at text/qstring.cpp:7929
#9  0x00007fa51886ea44 in NetstatHelper::parseSSOutput (netstatOutput=..., netstatOutput=..., this=0x56463b9f7560) at backends/netstat/./kcm/backends/netstat/netstathelper.cpp:148
#10 NetstatHelper::stepExecuteFinished (this=0x56463b9f7560, exitCode=<optimized out>) at backends/netstat/./kcm/backends/netstat/netstathelper.cpp:82

Perhaps we're trying to split en empty stringlist?