I also have reproduced this bug, it also occurs when I download the 1.6.0 source and compile that.
I'm new to this, but below is the output when running with strace.
writev(5, [{"*** glibc detected *** "..., 23}, {"./rdesktop"..., 10}, {": "..., 2}, {"double free or corruption (fastto"..., 35}, {": 0x"..., 4}, {"08f7b560"..., 8}, {" ***\n"..., 5}], 7*** glibc detected *** ./rdesktop: double free or corruption (fasttop): 0x08f7b560 *** ) = 87 open("/etc/ld.so.cache", O_RDONLY) = 6 fstat64(6, {st_mode=S_IFREG|0644, st_size=89683, ...}) = 0 mmap2(NULL, 89683, PROT_READ, MAP_PRIVATE, 6, 0) = 0xb79b7000 close(6) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/libgcc_s.so.1", O_RDONLY) = 6 read(6, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260\34\0\0004\0\0\0\234"..., 512) = 512 mmap2(NULL, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0xb7746000 munmap(0xb7746000, 761856) = 0 munmap(0xb7900000, 286720) = 0 mprotect(0xb7800000, 135168, PROT_READ|PROT_WRITE) = 0 fstat64(6, {st_mode=S_IFREG|0644, st_size=54740, ...}) = 0 mmap2(NULL, 57864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 6, 0) = 0xb7937000 mmap2(0xb7944000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0xc) = 0xb7944000 close(6) = 0 mprotect(0xb7944000, 4096, PROT_READ) = 0 munmap(0xb79b7000, 89683) = 0 write(5, "======= Backtrace: =========\n"..., 29======= Backtrace: ========= ) = 29 writev(5, [{"/lib/tls/i686/cmov/libc.so.6"..., 28}, {"[0x"..., 3}, {"b7ba5604"..., 8}, {"]\n"..., 2}], 4/lib/tls/i686/cmov/libc.so.6[0xb7ba5604] ) = 41 writev(5, [{"/lib/tls/i686/cmov/libc.so.6"..., 28}, {"("..., 1}, {"cfree"..., 5}, {"+0x"..., 3}, {"96"..., 2}, {")"..., 1}, {"[0x"..., 3}, {"b7ba75b6"..., 8}, {"]\n"..., 2}], 9/lib/tls/i686/cmov/libc.so.6(cfree+0x96)[0xb7ba75b6] ) = 53 writev(5, [{"/usr/lib/libX11.so.6"..., 20}, {"("..., 1}, {"XFree"..., 5}, {"+0x"..., 3}, {"1d"..., 2}, {")"..., 1}, {"[0x"..., 3}, {"b7cd2e9d"..., 8}, {"]\n"..., 2}], 9/usr/lib/libX11.so.6(XFree+0x1d)[0xb7cd2e9d] ) = 45 writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"805dfaf"..., 7}, {"]\n"..., 2}], 4./rdesktop[0x805dfaf] ) = 22 writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"80594ce"..., 7}, {"]\n"..., 2}], 4./rdesktop[0x80594ce] ) = 22 writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"80611cf"..., 7}, {"]\n"..., 2}], 4./rdesktop[0x80611cf] ) = 22 writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"8061548"..., 7}, {"]\n"..., 2}], 4./rdesktop[0x8061548] ) = 22 writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"80616b8"..., 7}, {"]\n"..., 2}], 4./rdesktop[0x80616b8] ) = 22 writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"8061e83"..., 7}, {"]\n"..., 2}], 4./rdesktop[0x8061e83] ) = 22 writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"80626bb"..., 7}, {"]\n"..., 2}], 4./rdesktop[0x80626bb] ) = 22 writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"8064253"..., 7}, {"]\n"..., 2}], 4./rdesktop[0x8064253] ) = 22 writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"8065159"..., 7}, {"]\n"..., 2}], 4./rdesktop[0x8065159] ) = 22 writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"8065c4c"..., 7}, {"]\n"..., 2}], 4./rdesktop[0x8065c4c] ) = 22 writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"804e3ca"..., 7}, {"]\n"..., 2}], 4./rdesktop[0x804e3ca] ) = 22 writev(5, [{"/lib/tls/i686/cmov/libc.so.6"..., 28}, {"("..., 1}, {"__libc_start_main"..., 17}, {"+0x"..., 3}, {"e5"..., 2}, {")"..., 1}, {"[0x"..., 3}, {"b7b4c775"..., 8}, {"]\n"..., 2}], 9/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb7b4c775] ) = 65 writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"804c261"..., 7}, {"]\n"..., 2}], 4./rdesktop[0x804c261] ) = 22 write(5, "======= Memory map: ========\n"..., 29======= Memory map: ======== ) = 29 open("/proc/self/maps", O_RDONLY) = 6 read(6, "08048000-0807a000 r-xp 00000000 0"..., 1024) = 1024 write(5, "08048000-0807a000 r-xp 00000000 0"..., 102408048000-0807a000 r-xp 00000000 08:02 60177 /var/tmp/rdesktop-1.6.0/rdesktop 0807a000-0807b000 r--p 00031000 08:02 60177 /var/tmp/rdesktop-1.6.0/rdesktop 0807b000-0807d000 rw-p 00032000 08:02 60177 /var/tmp/rdesktop-1.6.0/rdesktop 0807d000-083d2000 rw-p 0807d000 00:00 0 08f5c000-09062000 rw-p 08f5c000 00:00 0 [heap] b7800000-b7821000 rw-p b7800000 00:00 0 b7821000-b7900000 ---p b7821000 00:00 0 b7937000-b7944000 r-xp 00000000 08:02 220008 /lib/libgcc_s.so.1 b7944000-b7945000 r--p 0000c000 08:02 220008 /lib/libgcc_s.so.1 b7945000-b7946000 rw-p 0000d000 08:02 220008 /lib/libgcc_s.so.1 b7946000-b794a000 r-xp 00000000 08:02 489025 /usr/lib/libXfixes.so.3.1.0 b794a000-b794b000 rw-p 00003000 08:02 489025 /usr/lib/libXfixes.so.3.1.0 b794b000-b7953000 r-xp 00000000 08:02 489081 /usr/lib/libXrender.so.1.3.0 b7953000-b7954000 r--p 00007000 08:02 489081 /usr/lib/libXrender.so.1.3.0 b7954000-b7955000 rw-p 00008000 08:02 489081 /usr/lib/libXrender.so.1.3.0 b795500) = 1024 read(6, "0-b795d000 r-xp 00000000 08:02 48"..., 1024) = 1024 write(5, "0-b795d000 r-xp 00000000 08:02 48"..., 10240-b795d000 r-xp 00000000 08:02 489015 /usr/lib/libXcursor.so.1.0.2 b795d000-b795e000 rw-p 00007000 08:02 489015 /usr/lib/libXcursor.so.1.0.2 b795e000-b7970000 r-xp 00000000 08:02 552738 /lib/tls/i686/cmov/libresolv-2.9.so b79) = 237 close(6) = 0 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 tgkill(12320, 12320, SIGABRT) = 0 --- SIGABRT (Aborted) @ 0 (0) --- +++ killed by SIGABRT +++
I also have reproduced this bug, it also occurs when I download the 1.6.0 source and compile that.
I'm new to this, but below is the output when running with strace.
writev(5, [{"*** glibc detected *** "..., 23}, {"./rdesktop"..., 10}, {": "..., 2}, {"double free or corruption (fastto"..., 35}, {": 0x"..., 4}, {"08f7b560"..., 8}, {" ***\n"..., 5}], 7*** glibc detected *** ./rdesktop: double free or corruption (fasttop): 0x08f7b560 *** etc/ld. so.cache" , O_RDONLY) = 6 S_IFREG| 0644, st_size=89683, ...}) = 0 "/etc/ld. so.nohwcap" , F_OK) = -1 ENOENT (No such file or directory) lib/libgcc_ s.so.1" , O_RDONLY) = 6 1\1\1\0\ 0\0\0\0\ 0\0\0\0\ 3\0\3\0\ 1\0\0\0\ 260\34\ 0\0004\ 0\0\0\234" ..., 512) = 512 MAP_ANONYMOUS| MAP_NORESERVE, -1, 0) = 0xb7746000 0xb7800000, 135168, PROT_READ| PROT_WRITE) = 0 S_IFREG| 0644, st_size=54740, ...}) = 0 PROT_EXEC, MAP_PRIVATE| MAP_DENYWRITE, 6, 0) = 0xb7937000 PROT_WRITE, MAP_PRIVATE| MAP_FIXED| MAP_DENYWRITE, 6, 0xc) = 0xb7944000 0xb7944000, 4096, PROT_READ) = 0 tls/i686/ cmov/libc. so.6".. ., 28}, {"[0x"..., 3}, {"b7ba5604"..., 8}, {"]\n"..., 2}], 4/lib/tls/ i686/cmov/ libc.so. 6[0xb7ba5604] tls/i686/ cmov/libc. so.6".. ., 28}, {"("..., 1}, {"cfree"..., 5}, {"+0x"..., 3}, {"96"..., 2}, {")"..., 1}, {"[0x"..., 3}, {"b7ba75b6"..., 8}, {"]\n"..., 2}], 9/lib/tls/ i686/cmov/ libc.so. 6(cfree+ 0x96)[0xb7ba75b 6] lib/libX11. so.6".. ., 20}, {"("..., 1}, {"XFree"..., 5}, {"+0x"..., 3}, {"1d"..., 2}, {")"..., 1}, {"[0x"..., 3}, {"b7cd2e9d"..., 8}, {"]\n"..., 2}], 9/usr/lib/ libX11. so.6(XFree+ 0x1d)[0xb7cd2e9 d] 0x805dfaf] 0x80594ce] 0x80611cf] 0x8061548] 0x80616b8] 0x8061e83] 0x80626bb] 0x8064253] 0x8065159] 0x8065c4c] 0x804e3ca] tls/i686/ cmov/libc. so.6".. ., 28}, {"("..., 1}, {"__libc_ start_main" ..., 17}, {"+0x"..., 3}, {"e5"..., 2}, {")"..., 1}, {"[0x"..., 3}, {"b7b4c775"..., 8}, {"]\n"..., 2}], 9/lib/tls/ i686/cmov/ libc.so. 6(__libc_ start_main+ 0xe5)[0xb7b4c77 5] 0x804c261] proc/self/ maps", O_RDONLY) = 6 0807a000 r-xp 00000000 08:02 60177 /var/tmp/ rdesktop- 1.6.0/rdesktop rdesktop- 1.6.0/rdesktop rdesktop- 1.6.0/rdesktop libXfixes. so.3.1. 0 libXfixes. so.3.1. 0 libXrender. so.1.3. 0 libXrender. so.1.3. 0 libXrender. so.1.3. 0 libXcursor. so.1.0. 2 libXcursor. so.1.0. 2 i686/cmov/ libresolv- 2.9.so SIG_UNBLOCK, [ABRT], NULL, 8) = 0
) = 87
open("/
fstat64(6, {st_mode=
mmap2(NULL, 89683, PROT_READ, MAP_PRIVATE, 6, 0) = 0xb79b7000
close(6) = 0
access(
open("/
read(6, "\177ELF\
mmap2(NULL, 2097152, PROT_NONE, MAP_PRIVATE|
munmap(0xb7746000, 761856) = 0
munmap(0xb7900000, 286720) = 0
mprotect(
fstat64(6, {st_mode=
mmap2(NULL, 57864, PROT_READ|
mmap2(0xb7944000, 8192, PROT_READ|
close(6) = 0
mprotect(
munmap(0xb79b7000, 89683) = 0
write(5, "======= Backtrace: =========\n"..., 29======= Backtrace: =========
) = 29
writev(5, [{"/lib/
) = 41
writev(5, [{"/lib/
) = 53
writev(5, [{"/usr/
) = 45
writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"805dfaf"..., 7}, {"]\n"..., 2}], 4./rdesktop[
) = 22
writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"80594ce"..., 7}, {"]\n"..., 2}], 4./rdesktop[
) = 22
writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"80611cf"..., 7}, {"]\n"..., 2}], 4./rdesktop[
) = 22
writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"8061548"..., 7}, {"]\n"..., 2}], 4./rdesktop[
) = 22
writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"80616b8"..., 7}, {"]\n"..., 2}], 4./rdesktop[
) = 22
writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"8061e83"..., 7}, {"]\n"..., 2}], 4./rdesktop[
) = 22
writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"80626bb"..., 7}, {"]\n"..., 2}], 4./rdesktop[
) = 22
writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"8064253"..., 7}, {"]\n"..., 2}], 4./rdesktop[
) = 22
writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"8065159"..., 7}, {"]\n"..., 2}], 4./rdesktop[
) = 22
writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"8065c4c"..., 7}, {"]\n"..., 2}], 4./rdesktop[
) = 22
writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"804e3ca"..., 7}, {"]\n"..., 2}], 4./rdesktop[
) = 22
writev(5, [{"/lib/
) = 65
writev(5, [{"./rdesktop"..., 10}, {"[0x"..., 3}, {"804c261"..., 7}, {"]\n"..., 2}], 4./rdesktop[
) = 22
write(5, "======= Memory map: ========\n"..., 29======= Memory map: ========
) = 29
open("/
read(6, "08048000-0807a000 r-xp 00000000 0"..., 1024) = 1024
write(5, "08048000-0807a000 r-xp 00000000 0"..., 102408048000-
0807a000-0807b000 r--p 00031000 08:02 60177 /var/tmp/
0807b000-0807d000 rw-p 00032000 08:02 60177 /var/tmp/
0807d000-083d2000 rw-p 0807d000 00:00 0
08f5c000-09062000 rw-p 08f5c000 00:00 0 [heap]
b7800000-b7821000 rw-p b7800000 00:00 0
b7821000-b7900000 ---p b7821000 00:00 0
b7937000-b7944000 r-xp 00000000 08:02 220008 /lib/libgcc_s.so.1
b7944000-b7945000 r--p 0000c000 08:02 220008 /lib/libgcc_s.so.1
b7945000-b7946000 rw-p 0000d000 08:02 220008 /lib/libgcc_s.so.1
b7946000-b794a000 r-xp 00000000 08:02 489025 /usr/lib/
b794a000-b794b000 rw-p 00003000 08:02 489025 /usr/lib/
b794b000-b7953000 r-xp 00000000 08:02 489081 /usr/lib/
b7953000-b7954000 r--p 00007000 08:02 489081 /usr/lib/
b7954000-b7955000 rw-p 00008000 08:02 489081 /usr/lib/
b795500) = 1024
read(6, "0-b795d000 r-xp 00000000 08:02 48"..., 1024) = 1024
write(5, "0-b795d000 r-xp 00000000 08:02 48"..., 10240-b795d000 r-xp 00000000 08:02 489015 /usr/lib/
b795d000-b795e000 rw-p 00007000 08:02 489015 /usr/lib/
b795e000-b7970000 r-xp 00000000 08:02 552738 /lib/tls/
b79) = 237
close(6) = 0
rt_sigprocmask(
tgkill(12320, 12320, SIGABRT) = 0
--- SIGABRT (Aborted) @ 0 (0) ---
+++ killed by SIGABRT +++