From unknown Thu Apr 16 05:38:24 2026
X-Loop: owner@bugs.x2go.org
Subject: Bug#761: x2goclient segfaults if terminate button is repeatedly clicked
Reply-To: Vicent <vtselfa@gmail.com>, 761@bugs.x2go.org
Resent-From: Vicent <vtselfa@gmail.com>
Resent-To: x2go-dev@lists.x2go.org
Resent-CC: X2Go Developers <x2go-dev@lists.x2go.org>
X-Loop: owner@bugs.x2go.org
Resent-Date: Thu, 22 Jan 2015 23:20:02 +0000
Resent-Message-ID: <handler.761.B.14219687385340@bugs.x2go.org>
Resent-Sender: owner@bugs.x2go.org
X-X2Go-PR-Message: report 761
X-X2Go-PR-Package: x2goclient
X-X2Go-PR-Keywords: 
Received: via spool by submit@bugs.x2go.org id=B.14219687385340
          (code B); Thu, 22 Jan 2015 23:20:02 +0000
Received: (at submit) by bugs.x2go.org; 22 Jan 2015 23:18:58 +0000
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on
	ymir.das-netzwerkteam.de
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
	HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.2
Received: from mail-lb0-f180.google.com (mail-lb0-f180.google.com [209.85.217.180])
	by ymir.das-netzwerkteam.de (Postfix) with ESMTPS id 237895DA51
	for <submit@bugs.x2go.org>; Fri, 23 Jan 2015 00:18:55 +0100 (CET)
Received: by mail-lb0-f180.google.com with SMTP id b6so4274932lbj.11
        for <submit@bugs.x2go.org>; Thu, 22 Jan 2015 15:18:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=mime-version:from:date:message-id:subject:to:content-type;
        bh=ecra0L7o1nCmpCGrpL741SkbelWpNP67akKX2cq0z24=;
        b=c4V+nxPN8abmi9LNahkXkBF6cC9H16zZ+BZBlteJsux6jLNyl5w9KFM0b5SbAnu3hh
         14NqTQluoeb/EzAn3g6bmCc18jf8SDbgWrNzJLW7K3Ja3osLqpwsvmtsrzo+zGp3ZfJ5
         ssFJXGJnxow86FV1PyCjP2Qgx1aFkWM1ICrEqtU5JaWVnmq1ql9WJ/LWC2J38Dx3BeQo
         41v1ZK7uMy5kO9Qfxe7zp4Ht2v34y8ClzWTgcOfYcDFyeb3Q0fWkEltZby23/moA1QaN
         bZXE+qOKrMS6emkn7E4EyjKXwW38/6llgY+5RtO1nLTRC9SlTQQckUmDDmFAqnbb8POL
         PrGg==
X-Received: by 10.152.225.138 with SMTP id rk10mr4307048lac.18.1421968734436;
 Thu, 22 Jan 2015 15:18:54 -0800 (PST)
MIME-Version: 1.0
Received: by 10.112.189.106 with HTTP; Thu, 22 Jan 2015 15:18:34 -0800 (PST)
From: Vicent <vtselfa@gmail.com>
Date: Fri, 23 Jan 2015 00:18:34 +0100
Message-ID: <CADVAoGGA=Ye3fyQ87uJa3kH281YsxWsFoMfQFTUJt9AbCyxbEQ@mail.gmail.com>
To: submit@bugs.x2go.org
Content-Type: multipart/mixed; boundary=001a1133b73e4c5aa3050d45e5ad

--001a1133b73e4c5aa3050d45e5ad
Content-Type: multipart/alternative; boundary=001a1133b73e4c5a9e050d45e5ab

--001a1133b73e4c5a9e050d45e5ab
Content-Type: text/plain; charset=UTF-8

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

--001a1133b73e4c5a9e050d45e5ab
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><pre class=3D"">Package: x2goclient
Version: 4.0.3.1
Tag: patch<br><br>When the Terminate button is clicked, several seconds pas=
s until the session is efectively terminated and the window reflects the ch=
anges.<br></pre><pre class=3D"">If the botton is pressed another time, the =
program segfaults.<br><br></pre><pre class=3D""><br></pre><b>The steps you =
took to produce the bug</b><br><br>Start any connection. Terminate connecti=
on with Terminate button or closing the window. Repeatedly click terminate =
button.<br><br><b>Any exact error messages</b><br><br>Segfault<br><br><b>Wh=
at you expected to happen</b><br><br>The button should do nothing if clicke=
d a segond time.<br><br><b>What actually happened</b><br><br>Crash<br><br><=
b>The client machine&#39;s OS</b><br><br>Archlinux fully updated<br><br><b>=
The client machine&#39;s version of X2GoClient</b><br><br>Latest version fr=
om git, also in the one in archlinux repo<br><br><b>Any relevant session se=
ttings in X2GoClient, PyHoca-GUI or Pyhoca-CLI</b><br><br>Nothing<br><br><b=
>The server&#39;s OS</b><br><br>Archlinux, fully updated<p>Latest stable ve=
rsion of the software is used in the server, from Archlinux repositories, b=
ut server software is not relevant.<br></p><pre class=3D""><b>Backtrace</b>=
<br><br>#0  0x00007ffff5b032e0 in QProcess::terminate() () from /usr/lib/li=
bQtCore.so.4<br>#1  0x0000000000471ced in ONMainWindow::termSession (this=
=3D0xa92620, sessId=3D..., warn=3Dfalse) at ../onmainwindow.cpp:5968<br>#2 =
 0x00000000004698cb in ONMainWindow::slotTermSessFromSt (this=3D0xa92620) a=
t ../onmainwindow.cpp:4587<br>#3  0x00000000004f43cd in ONMainWindow::qt_st=
atic_metacall (_o=3D0xa92620, _c=3DQMetaObject::InvokeMetaMethod, _id=3D42,=
 _a=3D0x7fffffffd7d0) at moc_onmainwindow.cpp:366<br>#4  0x00007ffff5b89d9c=
 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () fro=
m /usr/lib/libQtCore.so.4<br>#5  0x00007ffff6a7f962 in QAbstractButton::cli=
cked(bool) () from /usr/lib/libQtGui.so.4<br>#6  0x00007ffff67beef3 in ?? (=
) from /usr/lib/libQtGui.so.4<br>#7  0x00007ffff67c02a4 in ?? () from /usr/=
lib/libQtGui.so.4<br>#8  0x00007ffff67c03b4 in QAbstractButton::mouseReleas=
eEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4<br>#9  0x00007ffff68824=
ba in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGu=
i.so.4<br>#10 0x00007ffff6442c08 in QWidget::event(QEvent*) () from /usr/li=
b/libQtGui.so.4<br>#11 0x00007ffff63ef9ac in QApplicationPrivate::notify_he=
lper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4<br>#12 0x00007ffff63=
f656f in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.=
so.4<br>#13 0x00007ffff5b7528d in QCoreApplication::notifyInternal(QObject*=
, QEvent*) () from /usr/lib/libQtCore.so.4<br>#14 0x00007ffff63f5bcf in QAp=
plicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*=
, QWidget**, QPointer&lt;QWidget&gt;&amp;, bool) () from /usr/lib/libQtGui.=
so.4<br>#15 0x00007ffff646c7a2 in ?? () from /usr/lib/libQtGui.so.4<br>#16 =
0x00007ffff646b19c in QApplication::x11ProcessEvent(_XEvent*) () from /usr/=
lib/libQtGui.so.4<br>#17 0x00007ffff64932e2 in ?? () from /usr/lib/libQtGui=
.so.4<br>#18 0x00007ffff1f0ea0d in g_main_context_dispatch () from /usr/lib=
/libglib-2.0.so.0<br>#19 0x00007ffff1f0ecf8 in ?? () from /usr/lib/libglib-=
2.0.so.0<br>#20 0x00007ffff1f0edac in g_main_context_iteration () from /usr=
/lib/libglib-2.0.so.0<br>#21 0x00007ffff5ba437d in QEventDispatcherGlib::pr=
ocessEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () from /usr/lib/l=
ibQtCore.so.4<br>#22 0x00007ffff64933a6 in ?? () from /usr/lib/libQtGui.so.=
4<br>#23 0x00007ffff5b73de1 in QEventLoop::processEvents(QFlags&lt;QEventLo=
op::ProcessEventsFlag&gt;) () from /usr/lib/libQtCore.so.4<br>#24 0x00007ff=
ff5b74145 in QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) =
() from /usr/lib/libQtCore.so.4<br>#25 0x00007ffff5b796e9 in QCoreApplicati=
on::exec() () from /usr/lib/libQtCore.so.4<br>#26 0x00000000004dccd6 in x2g=
oMain (argc=3D1, argv=3D0x7fffffffe688) at ../ongetpass.cpp:108<br>#27 0x00=
000000004f354c in main (argc=3D1, argv=3D0x7fffffffe688) at ../x2goclient.c=
pp:22<br><br></pre></div>

--001a1133b73e4c5a9e050d45e5ab--
--001a1133b73e4c5aa3050d45e5ad
Content-Type: text/x-patch; charset=US-ASCII; 
	name="0001-Fix-segfault-terminating-sessions.patch"
Content-Disposition: attachment; 
	filename="0001-Fix-segfault-terminating-sessions.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_i58rek8k0

RnJvbSBkOGFhNjkxNzRjMTZiNmNjMjQ3MTdmYzQyM2ViMjE5ODJjMTFjYjY2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWNlbnQgU2VsZmEgPHZ0c2VsZmFAZ21haWwuY29tPgpEYXRl
OiBGcmksIDIzIEphbiAyMDE1IDAwOjE0OjA2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IHNl
Z2ZhdWx0IHRlcm1pbmF0aW5nIHNlc3Npb25zCgotLS0KIG9ubWFpbndpbmRvdy5jcHAgfCAzICsr
KwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL29ubWFpbndp
bmRvdy5jcHAgYi9vbm1haW53aW5kb3cuY3BwCmluZGV4IDhlMmUxMWEuLjk2MjU1MmQgMTAwNjQ0
Ci0tLSBhL29ubWFpbndpbmRvdy5jcHAKKysrIGIvb25tYWlud2luZG93LmNwcApAQCAtNTkzNSw2
ICs1OTM1LDkgQEAgdm9pZCBPTk1haW5XaW5kb3c6OnN1c3BlbmRTZXNzaW9uICggUVN0cmluZyBz
ZXNzSWQgKQogCiBib29sIE9OTWFpbldpbmRvdzo6dGVybVNlc3Npb24gKCBRU3RyaW5nIHNlc3NJ
ZCwgYm9vbCB3YXJuICkKIHsKKwlpZiAoICFueHByb3h5ICkKKwkJcmV0dXJuIHRydWU7CisKICAg
ICBpZiAoIHdhcm4gKQogICAgIHsKICAgICAgICAgYm9vbCBoaWRlX2FmdGVyPWZhbHNlOwotLSAK
Mi4yLjIKCg==
--001a1133b73e4c5aa3050d45e5ad--
