[ rdesktop-Bugs-1375451 ] segfault crash with rdesk 1.4.1, 16-bit and win2k3

SourceForge.net <[email protected]> Wed, 21 Dec 2011 04:58:24 -0800
Newsgroups gmane.network.rdesktop.devel
Message-ID <[email protected]>
Bugs item #1375451, was opened at 2005-12-07 08:01
Message generated for change (Comment added) made by astrand
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=381347&aid=1375451&group_id=24366

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
>Status: Closed
>Resolution: Out of Date
Priority: 5
Private: No
Submitted By: Jens S. Benecke (jensb)
Assigned to: Nobody/Anonymous (nobody)
Summary: segfault crash with rdesk 1.4.1, 16-bit and win2k3

Initial Comment:
Hello, 
 
we use rdesktop (shipped with SuSE 10.0, v1.4.1) to 
connect to Windows terminal servers. This is to avoid 
having Windows locally on each PC. However, rdesktop 
seems to be very unstable. The same problem is with 
1.3.2. 
 
One Windows 2003 Terminal server has a particular 
problem: rdesktop just crashes / quits: 
 
~> rdesktop -r sound:local -a 16 -B -k de -g 1274x970   
xxx.xxx.xxx.xx 
WARNING: External BackingStore not available, using 
internal 
ERROR: recv: Bad address 
Speicherzugriffsfehler 
 
This happens often when starting a program, exactly 
when the application startup logo appears (e.g. 
FEKO). It also happens when trying to save a file in 
any application, when the File/save dialog appears. 
 
The problem only appears when using 16-bit color 
depth, which is however a requirement for many of our 
applications. 
 
 
~> gdb /usr/X11/bin/rdesktop 15717 
GNU gdb 6.3 
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General 
Public License, and you are 
welcome to change it and/or distribute copies of it 
under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB.  Type "show 
warranty" for details. 
This GDB was configured as "i586-suse-linux"...(no 
debugging symbols found) 
Using host libthread_db library 
"/lib/tls/libthread_db.so.1". 
 
 
Attaching to program: /usr/X11R6/bin/rdesktop, 
process 15717 
(no debugging symbols found) 
`system-supplied DSO at 0xffffe000' has disappeared; 
keeping its symbols. 
Reading symbols from /usr/lib/libcrypto.so.0.9.7...
(no debugging symbols found)...done. 
Loaded symbols for /usr/lib/libcrypto.so.0.9.7 
Reading symbols from /usr/X11R6/lib/libX11.so.6...(no 
debugging symbols found)...done. 
Loaded symbols for /usr/X11R6/lib/libX11.so.6 
Reading symbols from /lib/tls/libc.so.6...(no 
debugging symbols found)...done. 
Loaded symbols for /lib/tls/libc.so.6 
Reading symbols from /lib/libdl.so.2... 
(no debugging symbols found)...done. 
Loaded symbols for /lib/libdl.so.2 
Reading symbols from /lib/ld-linux.so.2...(no 
debugging symbols found)...done. 
Loaded symbols for /lib/ld-linux.so.2 
Reading symbols 
from /usr/X11R6/lib/X11/locale/lib/common/xlcDef.so.2...done. 
Loaded symbols 
for /usr/X11R6/lib/X11/locale/lib/common/xlcDef.so.2 
Reading symbols 
from /usr/lib/gconv/ISO8859-15.so...done. 
Loaded symbols for /usr/lib/gconv/ISO8859-15.so 
Reading symbols from /usr/lib/gconv/UTF-16.so...done. 
Loaded symbols for /usr/lib/gconv/UTF-16.so 
Reading symbols 
from /usr/X11R6/lib/libXcursor.so.1...done. 
Loaded symbols for /usr/X11R6/lib/libXcursor.so.1 
Reading symbols 
from /usr/X11R6/lib/libXrender.so.1...done. 
Loaded symbols for /usr/X11R6/lib/libXrender.so.1 
Reading symbols 
from /usr/X11R6/lib/libXext.so.6...done. 
Loaded symbols for /usr/X11R6/lib/libXext.so.6 
0xffffe410 in __kernel_vsyscall () 
(gdb) cont 
Continuing. 
ERROR: recv: Bad address 
 
Program received signal SIGSEGV, Segmentation fault. 
0x40199eee in XkbFreeClientMap () 
from /usr/X11R6/lib/libX11.so.6 
(gdb) bt 20 
#0  0x40199eee in XkbFreeClientMap () 
from /usr/X11R6/lib/libX11.so.6 
#1  0x4019cbf5 in XkbFreeKeyboard () 
from /usr/X11R6/lib/libX11.so.6 
#2  0x4018f265 in XkbIgnoreExtension () 
from /usr/X11R6/lib/libX11.so.6 
#3  0x401523fe in _XFreeDisplayStructure () 
from /usr/X11R6/lib/libX11.so.6 
#4  0x401404b8 in XCloseDisplay () 
from /usr/X11R6/lib/libX11.so.6 
#5  0x08051268 in error () 
#6  0x0804d3aa in error () 
#7  0x40239ea0 in __libc_start_main () 
from /lib/tls/libc.so.6 
#8  0x0804b6e1 in ?? () 
 
It won't happen with 8-bit depth, and no other 
combination of parameters except "-a 16" has produced 
this crash yet. 
 
Please investigate this. 
 
Thank you! :-) 
 
Jens 

----------------------------------------------------------------------

>Comment By: Peter Åstrand (astrand)
Date: 2011-12-21 04:58

Message:
Try latest version. 

----------------------------------------------------------------------

Comment By: Jens S. Benecke (jensb)
Date: 2006-03-31 04:35

Message:
Logged In: YES 
user_id=301265

Finally, here is a gdb backtrace that caught the bug, with 
debug info. This was hard to get because the crashed (and 
frozen) rdesktop had also frozen the keyboard, globally. 
Only the text console worked.

"length=4294683031" in tcp_recv() looks to me like a 
signed/unsigned variable problem. But I'll leave this 
decision to the people who actually know C. ;-)


*** glibc detected *** malloc(): memory corruption: 
0x083f0338 ***

Program received signal SIGABRT, Aborted.
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0x4024d541 in raise () from /lib/tls/libc.so.6
#2  0x4024edbb in abort () from /lib/tls/libc.so.6
#3  0x402838b5 in __libc_message () 
from /lib/tls/libc.so.6
#4  0x40289842 in malloc_printerr () 
from /lib/tls/libc.so.6
#5  0x4028a7c1 in _int_malloc () from /lib/tls/libc.so.6
#6  0x4028bea6 in malloc () from /lib/tls/libc.so.6
#7  0x4024a90b in _nl_make_l10nflist () 
from /lib/tls/libc.so.6
#8  0x40248925 in _nl_find_domain () 
from /lib/tls/libc.so.6
#9  0x4024836d in __dcigettext () from /lib/tls/libc.so.6
#10 0x4024781d in dcgettext () from /lib/tls/libc.so.6
#11 0x4028fc92 in strerror_r () from /lib/tls/libc.so.6
#12 0x4028fbb1 in strerror () from /lib/tls/libc.so.6
#13 0x0805b266 in tcp_recv (s=0x80b5760, 
length=4294683031) at tcp.c:117
#14 0x0805b668 in iso_recv_msg (code=0xbfddcb73 "", 
rdpver=0xbfddcc1b "")
    at iso.c:101
#15 0x0805b758 in iso_recv (rdpver=0xbfddcc1b "") at 
iso.c:156
#16 0x0805c065 in mcs_recv (channel=0xbfddcbda, 
rdpver=0xbfddcc1b "")
    at mcs.c:349
#17 0x0805d52c in sec_recv (rdpver=0xbfddcc1b "") at 
secure.c:836
#18 0x0805de20 in rdp_recv (type=0xbfde1c2b "") at 
rdp.c:86
#19 0x0805ee28 in rdp_loop (deactivated=0xbfde1fb8, 
ext_disc_reason=0xbfde1fb4)
    at rdp.c:1370
#20 0x0805fb39 in rdp_main_loop (deactivated=0xbfde1fb8,
    ext_disc_reason=0xbfde1fb4) at rdp.c:1355
#21 0x0804d906 in main (argc=1, argv=0xbfde2044) at 
rdesktop.c:888
(gdb)


Please, pretty please, let me help you fix this problem. 
=;)

Thanks!

----------------------------------------------------------------------

Comment By: Jens S. Benecke (jensb)
Date: 2006-03-31 04:18

Message:
Logged In: YES 
user_id=301265

I noticed that all clients use the 'radeon' X11 graphics 
drivers with ATI (or derivative) cards. I'll try to 
reproduce with different vendor cards, but I need to get 
hold of a machine first.

Also, disabling all accelleration, backingstore, etc. 
features in Xorg.conf does not help.


Furthermore, this problem only occurs when using "-a 16", 
and it *seems* only to occur with server-side apps that 
use OpenGL displays and are graphics intensive (modeling, 
CAD, etc).
No other combination of parameters has produced this 
problem, and people here that only start rdesktop to use 
MS Office haven't encountered the problem yet, either.

We are using a Windows 2003 terminal server.

-- 
 Jens

----------------------------------------------------------------------

Comment By: Jens S. Benecke (jensb)
Date: 2006-03-28 04:23

Message:
Logged In: YES 
user_id=301265

Hi,
I did, I even received a debug-enabled binary from a SuSE 
QA engineer. Here is the output:

BMPCACHE2
(compr=1,flags=4a2,cx=64,cy=64,id=2,idx=223,Bpp=2,bs=126)
MEMBLT(op=0xcc,x=192,y=407,cx=64,cy=64,id=2,idx=223)
BMPCACHE2
(compr=1,flags=4a2,cx=64,cy=64,id=2,idx=124,Bpp=2,bs=156)
MEMBLT(op=0xcc,x=256,y=407,cx=64,cy=64,id=2,idx=124)
BMPCACHE2
(compr=1,flags=4a2,cx=64,cy=64,id=2,idx=224,Bpp=2,bs=123)
MEMBLT(op=0xcc,x=320,y=407,cx=64,cy=64,id=2,idx=224)
BMPCACHE2
(compr=1,flags=4a2,cx=64,cy=64,id=2,idx=225,Bpp=2,bs=131)
MEMBLT(op=0xcc,x=384,y=407,cx=64,cy=64,id=2,idx=225)
BMPCACHE2
(compr=1,flags=4a2,cx=64,cy=64,id=2,idx=226,Bpp=2,bs=95)
MEMBLT(op=0xcc,x=448,y=407,cx=64,cy=64,id=2,idx=226)
BMPCACHE2
(compr=1,flags=4a2,cx=64,cy=64,id=2,idx=228,Bpp=2,bs=151)
MEMBLT(op=0xcc,x=512,y=407,cx=64,cy=64,id=2,idx=228)
BMPCACHE2
(compr=1,flags=4a2,cx=64,cy=64,id=2,idx=230,BpERROR: error 
while decompressing packet
NOT IMPLEMENTED: RDP5 opcode 11
ERROR: error while decompressing packet
NOT IMPLEMENTED: RDP5 opcode 14
NOT IMPLEMENTED: RDP5 opcode 103
ERROR: recv: Bad address
X Error: BadWindow (invalid Window parameter) 3
  Major opcode:  19
  Minor opcode:  0
  Resource id:  0x4000002


I always get the "X Error" upon closing rdesktop, but the 
errors before that are unique to the crashes. I also got a 
"glibc: memory corruption" error several times before 
rdesktop crashed.

I have now reversed the order of the parameters which I 
call rdesktop with, to

rdesktop -a 16 -d GET -u benecke -p XXXXXXXXX -r 
sound:local -x m -T "Remote Desktop [benecke@XXXXXXXXX]" 
-B -k de -g 1274x970 -r printer:laserjet1320="hp LaserJet 
1320 PS",deskjet890c="HP DeskJet 890C",laserjet2300="HP 
LaserJet 2200 Series PCL" XX.XX.XX.XXX

(was "-a 16 -x m -T ".." -d GET ..." before), and *so far* 
no error has occured. But that doesn't mean much, 
sometimes it works for days before it appears again.

Also, when rdesktop disconnects, and I reconnect with 8bit 
color depth (without -a 16), I sometimes get an OpenGL 
error message from running applications. Maybe that has 
something to do with it.

Thanks for your help!



----------------------------------------------------------------------

Comment By: Nobody/Anonymous (nobody)
Date: 2006-03-28 03:33

Message:
Logged In: NO 

Try compiling rdesktop manually.  I believe SuSE's package 
is messed up.

----------------------------------------------------------------------

Comment By: Jens S. Benecke (jensb)
Date: 2006-03-28 00:53

Message:
Logged In: YES 
user_id=301265

Hello,

can anybody help me track this bug down? I'm really quite 
desperate now, because the alternative would be to install 
Windows locally on hundreds of machines again, which we 
all would like to avoid.

Thanks! :)

----------------------------------------------------------------------

Comment By: Jens S. Benecke (jensb)
Date: 2005-12-14 04:42

Message:
Logged In: YES 
user_id=301265

This bug has also been reported to SuSE's bugzilla at  
https://bugzilla.novell.com/show_bug.cgi?id=137382, where 
a debug log is included. 
I would really appreciate if you could have a look into 
this problem. I'm willing to test out patches and debug 
builds. 
 
Thanks! 

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=381347&aid=1375451&group_id=24366

------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
rdesktop-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdesktop-devel