Subject: Bug#723: [X2Go-Dev] Bug#723: x2go sessions insta-break with some GUI software (ROOT TBrowser)

From: "Babutzka, Martin (EKP)" <[email-masked]>
Date: Fri, 9 Jan 2015 15:55:57 +0100

Some updates on this bug:

I've tested several VcXsrv-Versions from http://code.x2go.org/releases/binary-win32/3rd-party/vcxsrv-modified-by-x2go-project/
The bug purely occurs with the more recent versions of VcXsrv - like 1.15.2.0 and 1.15.2.1
The bug does NOT occur with the older versions 1.14 (tested 1.14.3.2).

So the bug is caused by changes made in VcXsrv from version 1.14 to 1.15. I used the debug version "vcxsrv-debug.1.15.2.1-xp+vc2013+x2go1.installer.exe" to receive the following trace of the SIGFAULT:

Program received signal SIGSEGV, Segmentation fault.
in memcpy () from C:\Temp\VcXsrv-Debug\msvcr120d.dll

0x5b4b3365  <+0x01c5>        f3 0f 6f 0e              movdqu (%esi),%xmm1
0x5b4b3369  <+0x01c9>        83 e9 10                 sub    $0x10,%ecx
0x5b4b336c  <+0x01cc>        8d 76 10                 lea    0x10(%esi),%esi
0x5b4b336f  <+0x01cf>        66 0f 7f 0f              movdqa %xmm1,(%edi)
0x5b4b3373  <+0x01d3>        8d 7f 10                 lea    0x10(%edi),%edi
0x5b4b3376  <+0x01d6>        eb e8                    jmp    0x5b4b3360 <memcpy+448>
0x5b4b3378  <+0x01d8>        0f ba e1 02              bt     $0x2,%ecx
0x5b4b337c  <+0x01dc>        73 0d                    jae    0x5b4b338b <memcpy+491>
0x5b4b337e  <+0x01de>        8b 06                    mov    (%esi),%eax
0x5b4b3380  <+0x01e0>        83 e9 04                 sub    $0x4,%ecx
0x5b4b3383  <+0x01e3>        8d 76 04                 lea    0x4(%esi),%esi
0x5b4b3386  <+0x01e6>        89 07                    mov    %eax,(%edi)
0x5b4b3388  <+0x01e8>        8d 7f 04                 lea    0x4(%edi),%edi
0x5b4b338b  <+0x01eb>        0f ba e1 03              bt     $0x3,%ecx
0x5b4b338f  <+0x01ef>        73 11                    jae    0x5b4b33a2 <memcpy+514>
0x5b4b3391  <+0x01f1>        f3 0f 7e 0e              movq   (%esi),%xmm1
0x5b4b3395  <+0x01f5>        83 e9 08                 sub    $0x8,%ecx
0x5b4b3398  <+0x01f8>        8d 76 08                 lea    0x8(%esi),%esi
0x5b4b339b  <+0x01fb>        66 0f d6 0f              movq   %xmm1,(%edi)
0x5b4b339f  <+0x01ff>        8d 7f 08                 lea    0x8(%edi),%edi
0x5b4b33a2  <+0x0202>        8b 04 8d d8 34 4b 5b     mov    0x5b4b34d8(,%ecx,4),%eax
0x5b4b33a9  <+0x0209>        ff e0                    jmp    *%eax
0x5b4b33ab  <+0x020b>        f7 c7 03 00 00 00        test   $0x3,%edi
0x5b4b33b1  <+0x0211>        75 15                    jne    0x5b4b33c8 <memcpy+552>
0x5b4b33b3  <+0x0213>        c1 e9 02                 shr    $0x2,%ecx
0x5b4b33b6  <+0x0216>        83 e2 03                 and    $0x3,%edx
0x5b4b33b9  <+0x0219>        83 f9 08                 cmp    $0x8,%ecx
0x5b4b33bc  <+0x021c>        72 2a                    jb     0x5b4b33e8 <memcpy+584>
SEGFAULT
0x5b4b33be  <+0x021e>        f3 a5                    rep movsl %ds:(%esi),%es:(%edi)