Summary: | krdc SIGSEGV when freerdp disconnects sometimes | ||
---|---|---|---|
Product: | [Applications] krdc | Reporter: | Mike Russo <mike> |
Component: | RDP | Assignee: | Urs Wolfer <uwolfer> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ctrlaltca |
Priority: | NOR | ||
Version First Reported In: | 25.04.1 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/network/krdc/-/commit/1343b62e797a73568c614d071a77b09049808b4f | Version Fixed In: | |
Sentry Crash Report: |
Description
Mike Russo
2025-05-21 16:14:18 UTC
Crash confirmed by valgrind If i read it correctly, the RdpView destructor has already been executed but the parent class method RemoteView::startQuitting() is calling RdpView::startQuittingConnection() [23:21:40:562] [22692:000058e3] [ERROR][com.freerdp.core] - [transport_read_layer]: ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x0002000D] ==22692== Invalid read of size 8 ==22692== at 0x4A1B2EE: RemoteView::startQuitting() (remoteview.cpp:152) ==22692== by 0x1E54DA52: RdpView::handleError(unsigned int) (rdpview.cpp:364) ==22692== by 0x1E551275: QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<unsigned int>, void, void (RdpView::*)(unsigned int)>::call(void (RdpView::*)(unsigned int), RdpView*, void**)::{lambda()#1}::operator()() const (qobjectdefs_impl.h:152) ==22692== by 0x1E551862: void QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<unsigned int>, void, void (RdpView::*)(unsigned int)>::call(void (RdpView::*)(unsigned int), RdpView*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<unsigned int>, void, void (RdpView::*)(unsigned int)>::call(void (RdpView::*)(unsigned int), RdpView*, void**)::{lambda()#1}&&) (qobjectdefs_impl.h:65) ==22692== by 0x1E5512D8: QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<unsigned int>, void, void (RdpView::*)(unsigned int)>::call(void (RdpView::*)(unsigned int), RdpView*, void**) (qobjectdefs_impl.h:151) ==22692== by 0x1E550EDF: void QtPrivate::FunctionPointer<void (RdpView::*)(unsigned int)>::call<QtPrivate::List<unsigned int>, void>(void (RdpView::*)(unsigned int), RdpView*, void**) (qobjectdefs_impl.h:199) ==22692== by 0x1E55077A: QtPrivate::QCallableObject<void (RdpView::*)(unsigned int), QtPrivate::List<unsigned int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:570) ==22692== by 0x73E778E: QObject::event(QEvent*) (in /usr/lib64/libQt6Core.so.6.8.3) ==22692== by 0x4A1C642: RemoteView::event(QEvent*) (remoteview.cpp:429) ==22692== by 0x5F1D1F4: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt6Widgets.so.6.8.3) ==22692== by 0x737CCC7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib64/libQt6Core.so.6.8.3) ==22692== by 0x73812C0: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib64/libQt6Core.so.6.8.3) ==22692== Address 0x1dcecf10 is 0 bytes inside a block of size 312 free'd ==22692== at 0x484D739: operator delete(void*, unsigned long) (vg_replace_malloc.c:1181) ==22692== by 0x1E54B6FE: RdpView::~RdpView() (rdpview.cpp:78) ==22692== by 0x73E754F: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt6Core.so.6.8.3) ==22692== by 0x5F7FCEF: QWidget::~QWidget() (in /usr/lib64/libQt6Widgets.so.6.8.3) ==22692== by 0x5F7FEBC: QWidget::~QWidget() (in /usr/lib64/libQt6Widgets.so.6.8.3) ==22692== by 0x73E754F: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt6Core.so.6.8.3) ==22692== by 0x5F7FCEF: QWidget::~QWidget() (in /usr/lib64/libQt6Widgets.so.6.8.3) ==22692== by 0x41DDAA: RemoteViewScrollArea::~RemoteViewScrollArea() (mainwindow.h:159) ==22692== by 0x41DDCB: RemoteViewScrollArea::~RemoteViewScrollArea() (mainwindow.h:159) ==22692== by 0x73E79D1: QObject::event(QEvent*) (in /usr/lib64/libQt6Core.so.6.8.3) ==22692== by 0x602A713: QFrame::event(QEvent*) (in /usr/lib64/libQt6Widgets.so.6.8.3) ==22692== by 0x5F1D1F4: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt6Widgets.so.6.8.3) ==22692== Block was alloc'd at ==22692== at 0x4849F3F: operator new(unsigned long) (vg_replace_malloc.c:487) ==22692== by 0x1E54A201: RdpViewFactory::createView(QWidget*, QUrl const&, KConfigGroup) (rdpviewfactory.cpp:94) ==22692== by 0x43E475: MainWindow::newConnection(QUrl const&, bool, QString const&) (mainwindow.cpp:286) ==22692== by 0x43EDA2: MainWindow::openFromRemoteDesktopsModel(QModelIndex const&) (mainwindow.cpp:356) ==22692== by 0x41BB55: MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_mainwindow.cpp:354) ==22692== by 0x73ED0C4: ??? (in /usr/lib64/libQt6Core.so.6.8.3) ==22692== by 0x6247A0B: QAbstractItemView::mouseDoubleClickEvent(QMouseEvent*) (in /usr/lib64/libQt6Widgets.so.6.8.3) ==22692== by 0x5F84D69: QWidget::event(QEvent*) (in /usr/lib64/libQt6Widgets.so.6.8.3) ==22692== by 0x602A713: QFrame::event(QEvent*) (in /usr/lib64/libQt6Widgets.so.6.8.3) ==22692== by 0x737CA05: QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (in /usr/lib64/libQt6Core.so.6.8.3) ==22692== by 0x5F1D1E4: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt6Widgets.so.6.8.3) ==22692== by 0x5F2761D: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt6Widgets.so.6.8.3) ==22692== A possibly relevant merge request was started @ https://invent.kde.org/network/krdc/-/merge_requests/189 Git commit 10bba613f89bd8b3d71864f2496eb674021ecb29 by Fabio Bas. Committed on 27/05/2025 at 20:03. Pushed by ctrlaltca into branch 'master'. RdpView: avoid multiple startQuitting() calls on the same connection Reworks fix for bug 503176 M +5 -7 rdp/rdpview.cpp https://invent.kde.org/network/krdc/-/commit/10bba613f89bd8b3d71864f2496eb674021ecb29 Git commit 1343b62e797a73568c614d071a77b09049808b4f by Fabio Bas. Committed on 27/05/2025 at 21:05. Pushed by ctrlaltca into branch 'release/25.04'. RdpView: avoid multiple startQuitting() calls on the same connection Reworks fix for bug 503176 M +8 -8 rdp/rdpview.cpp https://invent.kde.org/network/krdc/-/commit/1343b62e797a73568c614d071a77b09049808b4f |