Comment 2 for bug 652961

Revision history for this message
mike@papersolve.com (mike-papersolve) wrote : Re: vino-server SIGSEGV in __nss_hostname_digits_dots

More information after updating vino to 2.32, installing debug symbols and actually doing the Backtrace procedure as documented in the Wiki:

mike@rounder:~$ gdb /usr/lib/vino/vino-server
GNU gdb (GDB) 7.2-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/lib/vino/vino-server...Reading symbols from /usr/lib/debug/usr/lib/vino/vino-server...done.
done.
(gdb) handle SIG33 pass nostop noprint
Signal Stop Print Pass to program Description
SIG33 No No Yes Real-time event 33
(gdb) set pagination 0
(gdb) run
Starting program: /usr/lib/vino/vino-server
[Thread debugging using libthread_db enabled]
[New Thread 0xb7ddab70 (LWP 5172)]
03/10/2010 10:42:06 PM Autoprobing TCP port in (all) network interface
03/10/2010 10:42:06 PM Listening IPv6://[::]:5900
03/10/2010 10:42:06 PM Listening IPv4://0.0.0.0:5900
03/10/2010 10:42:06 PM Autoprobing selected port 5900
03/10/2010 10:42:06 PM Advertising security type: 'TLS' (18)
03/10/2010 10:42:06 PM Advertising authentication type: 'VNC Authentication' (2)
03/10/2010 10:42:06 PM Advertising security type: 'VNC Authentication' (2)

Program received signal SIGSEGV, Segmentation fault.
0x00c34370 in __nss_hostname_digits_dots () from /lib/libc.so.6
(gdb) backtrace full
#0 0x00c34370 in __nss_hostname_digits_dots () from /lib/libc.so.6
No symbol table info available.
#1 0x00c38cca in gethostbyname () from /lib/libc.so.6
No symbol table info available.
#2 0x0807a5c2 in miniwget2 (url=<value optimized out>, host=0x0, port=2555, path=0x811f18b "/upnp/6c352473-8521-319e-8757-639e9dca9979/desc.xml", size=0xbfffefac, addr_str=0x80c0c58 "", addr_str_len=16) at miniwget.c:45
        buf = "\364\177\225\000\250\347\377\277\000\000\000\000(\347\377\277\364\177\225\000h\347\377\277g\000\000\000(\347\377\277\364\177\225\000\066\223\021\000\272ƕ\000\251\322\004\bۅ\224\000\370\356\021\b`\342\375\267\002\000\000\000\340\360\021\000\\\312\004\b \205\376\267\364\317\022\000\330\235\225\000\025\000\000\000\264\347\377\277\004\231\021\000\220\206\224\000\066\223\021\000\222\070\266\000\251\322\004\b\000\000\000\000\025\000\000\000\200\342\375\267\002\000\377\000\340\360\021\000i\315\004\b\270w\376\267\364\317\022\000\320;\265\000\033\000\000\000\364\347\377\277\004\231\021\000l\341\375\267\225M\235|O\000\000\000E\000\000\000\030\331\022\000\033\000\000\000\000\000\000\000\005\000\000\000\031\001\000\000`\342\375\267\320M\265\000p\250\022\000\274\347\377\277\b\237\004\b\020\000\000\000P\227\265\000\204\341\375\267\220u\202\rt\350\377\277E\000\000\000\030\331\022\000\000\000\000\000\000\000\000\000\005\000\000\000\230\004\000\000\200\342\375\267\350w\376\267\324\316\004\bPߵ\000\250\212\004\b\001\000\000\000\364\317\022\000\340\350\377\277\320\332\022\000\264\350\377\277\302\233\021\000\244\350\377\277\250\212\004\b\230\350\377\277t\332\022\000\000\000\000\000\200\342\375\267\005\000\000\000\000\000\000\000\001\000\000\000\030\331\022\000T\263"...
        s = 13288440
        dest = {sin_family = 50156, sin_port = 202, sin_addr = {s_addr = 135333136}, sin_zero = "\213\361\021\b\v\000\000"}
        hp = <value optimized out>
#3 0x0807a9b1 in miniwget_getaddr (url=0x811f174 "http://192.168.1.1:2555/upnp/6c352473-8521-319e-8757-639e9dca9979/desc.xml", size=0xbfffefac, addr=0x80c0c58 "", addrlen=16) at miniwget.c:223
        port = <value optimized out>
        path = 0x811f18b "/upnp/6c352473-8521-319e-8757-639e9dca9979/desc.xml"
        hostname = 0x0
        ret = <value optimized out>
#4 0x08079c53 in UPNP_GetValidIGD (devlist=0x811f168, urls=0x81104a8, data=0x811f1f8, lanaddr=0x80c0c58 "", lanaddrlen=16) at miniupnpc.c:676
        descXMLsize = 0
        dev = 0x9
        state = 1
#5 0x0805ce1d in update_upnp_status (upnp=0x80c0c40) at vino-upnp.c:96
        devlist = 0x811f168
        res = 0
#6 0x0805d0b7 in vino_upnp_add_port (upnp=0x80c0c40, port=5900) at vino-upnp.c:229
        ext_port = <value optimized out>
        int_port = 0x0
        desc = 0x1 <Address 0x1 out of bounds>
        err = <value optimized out>
        local_port = <value optimized out>
        int_client_tmp = "\350\257\021\b\000\206\020\bL\361\377\277x\360\377\277"
        int_port_tmp = "\005\b\000\000\000"
        __PRETTY_FUNCTION__ = "vino_upnp_add_port"
#7 0x08056d63 in vino_server_control_upnp (server=0x8108600) at vino-server.c:254
No locals.
#8 0x08058208 in vino_server_set_use_upnp (server=0x8108600, use_upnp=1) at vino-server.c:275
        __PRETTY_FUNCTION__ = "vino_server_set_use_upnp"
#9 0x00a1d995 in ?? () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#10 0x00a1b86a in g_object_newv () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#11 0x00a1c3cc in g_object_new_valist () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#12 0x00a1c4e7 in g_object_new () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#13 0x08055dbf in vino_prefs_create_server (screen=0x80be0c8) at vino-prefs.c:517
        server = <value optimized out>
        indicator = <value optimized out>
#14 0x08054557 in main (argc=1, argv=0xbffff4a4) at vino-main.c:117
        context = <value optimized out>
        display = 0x81072a8
        view_only = <value optimized out>
        i = 1
        n_screens = <value optimized out>
        error = 0x0
        client = <value optimized out>
(gdb) info registers
eax 0x0 0
ecx 0x6500 25856
edx 0x9 9
ebx 0xcaaff4 13283316
esp 0xbfffe5f0 0xbfffe5f0
ebp 0xbfffe634 0xbfffe634
esi 0x0 0
edi 0xb7fdba70 -1208108432
eip 0xc34370 0xc34370 <__nss_hostname_digits_dots+64>
eflags 0x210213 [ CF AF IF RF ID ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
(gdb) x/16i $pc
=> 0xc34370 <__nss_hostname_digits_dots+64>: movzbl (%esi),%edx
   0xc34373 <__nss_hostname_digits_dots+67>: movsbl %dl,%eax
   0xc34376 <__nss_hostname_digits_dots+70>: lea -0x30(%eax),%ecx
   0xc34379 <__nss_hostname_digits_dots+73>: cmp $0x9,%ecx
   0xc3437c <__nss_hostname_digits_dots+76>: jbe 0xc343b0 <__nss_hostname_digits_dots+128>
   0xc3437e <__nss_hostname_digits_dots+78>: mov -0x15c(%ebx),%ecx
   0xc34384 <__nss_hostname_digits_dots+84>: mov (%edi,%ecx,1),%ecx
   0xc34387 <__nss_hostname_digits_dots+87>: test %ecx,%ecx
   0xc34389 <__nss_hostname_digits_dots+89>: mov %ecx,-0x18(%ebp)
   0xc3438c <__nss_hostname_digits_dots+92>: je 0xc3495e <__nss_hostname_digits_dots+1582>
   0xc34392 <__nss_hostname_digits_dots+98>: mov -0x18(%ebp),%ecx
   0xc34395 <__nss_hostname_digits_dots+101>: testb $0x10,0x1(%ecx,%eax,2)
   0xc3439a <__nss_hostname_digits_dots+106>: jne 0xc343b0 <__nss_hostname_digits_dots+128>
   0xc3439c <__nss_hostname_digits_dots+108>: cmp $0x3a,%dl
   0xc3439f <__nss_hostname_digits_dots+111>: je 0xc343b0 <__nss_hostname_digits_dots+128>
   0xc343a1 <__nss_hostname_digits_dots+113>: xor %eax,%eax
(gdb) thread apply all backtrace

Thread 2 (Thread 0xb7ddab70 (LWP 5172)):
#0 0x0012e416 in __kernel_vsyscall ()
#1 0x00c12de6 in poll () from /lib/libc.so.6
#2 0x00a9aa1b in g_poll () from /lib/libglib-2.0.so.0
#3 0x00a8d43c in ?? () from /lib/libglib-2.0.so.0
#4 0x00a8dba7 in g_main_loop_run () from /lib/libglib-2.0.so.0
#5 0x00d546b4 in ?? () from /usr/lib/libgio-2.0.so.0
#6 0x00ab448f in ?? () from /lib/libglib-2.0.so.0
#7 0x0095ecc9 in start_thread () from /lib/libpthread.so.0
#8 0x00c216ae in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb7fdba70 (LWP 5169)):
#0 0x00c34370 in __nss_hostname_digits_dots () from /lib/libc.so.6
#1 0x00c38cca in gethostbyname () from /lib/libc.so.6
#2 0x0807a5c2 in miniwget2 (url=<value optimized out>, host=0x0, port=2555, path=0x811f18b "/upnp/6c352473-8521-319e-8757-639e9dca9979/desc.xml", size=0xbfffefac, addr_str=0x80c0c58 "", addr_str_len=16) at miniwget.c:45
#3 0x0807a9b1 in miniwget_getaddr (url=0x811f174 "http://192.168.1.1:2555/upnp/6c352473-8521-319e-8757-639e9dca9979/desc.xml", size=0xbfffefac, addr=0x80c0c58 "", addrlen=16) at miniwget.c:223
#4 0x08079c53 in UPNP_GetValidIGD (devlist=0x811f168, urls=0x81104a8, data=0x811f1f8, lanaddr=0x80c0c58 "", lanaddrlen=16) at miniupnpc.c:676
#5 0x0805ce1d in update_upnp_status (upnp=0x80c0c40) at vino-upnp.c:96
#6 0x0805d0b7 in vino_upnp_add_port (upnp=0x80c0c40, port=5900) at vino-upnp.c:229
#7 0x08056d63 in vino_server_control_upnp (server=0x8108600) at vino-server.c:254
#8 0x08058208 in vino_server_set_use_upnp (server=0x8108600, use_upnp=1) at vino-server.c:275
#9 0x00a1d995 in ?? () from /usr/lib/libgobject-2.0.so.0
#10 0x00a1b86a in g_object_newv () from /usr/lib/libgobject-2.0.so.0
#11 0x00a1c3cc in g_object_new_valist () from /usr/lib/libgobject-2.0.so.0
#12 0x00a1c4e7 in g_object_new () from /usr/lib/libgobject-2.0.so.0
#13 0x08055dbf in vino_prefs_create_server (screen=0x80be0c8) at vino-prefs.c:517
#14 0x08054557 in main (argc=1, argv=0xbffff4a4) at vino-main.c:117
(gdb) quit
A debugging session is active.

 Inferior 1 [process 5169] will be killed.

Quit anyway? (y or n) y