Package: x2goclient
Version: 4.0.3.1
Tag: patch

When the Terminate button is clicked, several seconds pass until the session is efectively terminated and the window reflects the changes.
If the botton is pressed another time, the program segfaults.


The steps you took to produce the bug

Start any connection. Terminate connection with Terminate button or closing the window. Repeatedly click terminate button.

Any exact error messages

Segfault

What you expected to happen

The button should do nothing if clicked a segond time.

What actually happened

Crash

The client machine's OS

Archlinux fully updated

The client machine's version of X2GoClient

Latest version from git, also in the one in archlinux repo

Any relevant session settings in X2GoClient, PyHoca-GUI or Pyhoca-CLI

Nothing

The server's OS

Archlinux, fully updated

Latest stable version of the software is used in the server, from Archlinux repositories, but server software is not relevant.

Backtrace

#0 0x00007ffff5b032e0 in QProcess::terminate() () from /usr/lib/libQtCore.so.4
#1 0x0000000000471ced in ONMainWindow::termSession (this=0xa92620, sessId=..., warn=false) at ../onmainwindow.cpp:5968
#2 0x00000000004698cb in ONMainWindow::slotTermSessFromSt (this=0xa92620) at ../onmainwindow.cpp:4587
#3 0x00000000004f43cd in ONMainWindow::qt_static_metacall (_o=0xa92620, _c=QMetaObject::InvokeMetaMethod, _id=42, _a=0x7fffffffd7d0) at moc_onmainwindow.cpp:366
#4 0x00007ffff5b89d9c in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#5 0x00007ffff6a7f962 in QAbstractButton::clicked(bool) () from /usr/lib/libQtGui.so.4
#6 0x00007ffff67beef3 in ?? () from /usr/lib/libQtGui.so.4
#7 0x00007ffff67c02a4 in ?? () from /usr/lib/libQtGui.so.4
#8 0x00007ffff67c03b4 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
#9 0x00007ffff68824ba in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
#10 0x00007ffff6442c08 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#11 0x00007ffff63ef9ac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#12 0x00007ffff63f656f in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#13 0x00007ffff5b7528d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#14 0x00007ffff63f5bcf in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#15 0x00007ffff646c7a2 in ?? () from /usr/lib/libQtGui.so.4
#16 0x00007ffff646b19c in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#17 0x00007ffff64932e2 in ?? () from /usr/lib/libQtGui.so.4
#18 0x00007ffff1f0ea0d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#19 0x00007ffff1f0ecf8 in ?? () from /usr/lib/libglib-2.0.so.0
#20 0x00007ffff1f0edac in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#21 0x00007ffff5ba437d in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#22 0x00007ffff64933a6 in ?? () from /usr/lib/libQtGui.so.4
#23 0x00007ffff5b73de1 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#24 0x00007ffff5b74145 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#25 0x00007ffff5b796e9 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#26 0x00000000004dccd6 in x2goMain (argc=1, argv=0x7fffffffe688) at ../ongetpass.cpp:108
#27 0x00000000004f354c in main (argc=1, argv=0x7fffffffe688) at ../x2goclient.cpp:22