Fwd: SEGV in dbus-ping-send.c

Kimmo Hämäläinen kimmo.hamalainen at nokia.com
Wed Oct 24 06:03:10 PDT 2007


On Wed, 2007-10-24 at 12:04 +0300, ext Vitaly V. Ch wrote:
> 
> 
> ---------- Forwarded message ----------
> From: Vitaly V. Ch <vitaly.v.ch at gmail.com>
> Date: Oct 23, 2007 4:52 PM 
> Subject: Re: SEGV in dbus-ping-send.c
> To: Rafaël Carré <funman at videolan.org>
> 
> Hm. It's success. Thanks
> But At now I have another troubles with dbus-ping-listen. 
> 
> sources and valgrind log is attached
> 
> bash-3.1# gdb ./dbus-ping-listen
> GNU gdb 6.6
> Copyright (C) 2006 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 "i486-slackware-linux"...
> Using host libthread_db library "/lib/libthread_db.so.1". 
> (gdb) run
> Starting program: /root/projects.izum/dbus.ping/dbus-ping-listen 
> Ping received: Ping!
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0xb7d4e0c7 in free () from /lib/libc.so.6 
> (gdb) bt 
> #0  0xb7d4e0c7 in free () from /lib/libc.so.6
> #1  0xb7f17e91 in dbus_free () from /usr/lib/libdbus-1.so.3
> #2  0x080488db in signal_filter (connection=0x804b6e8,
> message=0x804bb10, user_data=0x804ae88) at dbus-ping-listen.c :57

Just remove the dbus_free() call from signal_filter(), the string is not
a copy.

BR, Kimmo

> #3  0xb7efea2c in dbus_connection_dispatch ()
> from /usr/lib/libdbus-1.so.3
> #4  0xb7f2b56d in ?? () from /usr/lib/libdbus-glib-1.so.2
> #5  0x0804b6e8 in ?? ()
> #6  0x0804d4b8 in ?? ()
> #7  0xbfbbf188 in ?? () 
> #8  0xb7e69da2 in g_slist_prepend () from /usr/lib/libglib-2.0.so.0
> #9  0xb7e51b11 in g_main_context_dispatch ()
> from /usr/lib/libglib-2.0.so.0
> #10 0xb7e54b86 in ?? () from /usr/lib/libglib-2.0.so.0
> #11 0x0804a008 in ?? () 
> #12 0x00000000 in ?? ()
> (gdb) quit
> The program is running.  Exit anyway? (y or n) y
> bash-3.1#
> 
> 
> 
> On 10/23/07, Rafaël Carré <funman at videolan.org> wrote:
>         -----BEGIN PGP SIGNED MESSAGE-----
>         Hash: SHA1
>         
>         Vitaly V. Ch a écrit :
>         > I receive unexpected SIGSEGV at trying to start dbus-ping-
>         send from
>         > examples.
>         >
>         > dbus-ping-send.c is attached.
>         >
>         > system slackware-12.0
>         >
>         > bash-3.1# gdb ./dbus-ping-send
>         > GNU gdb 6.6
>         > Copyright (C) 2006 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 "i486-slackware-linux"... 
>         > Using host libthread_db library "/lib/libthread_db.so.1".
>         > (gdb) break send_ping
>         > Breakpoint 1 at 0x80487c7: file dbus-ping-send.c, line 44.
>         > (gdb) run
>         > Starting program: /root/projects.izum/dbus.ping/dbus-ping-
>         send 
>         >
>         > Breakpoint 1, send_ping (bus=0x804b6e8) at dbus-ping-
>         send.c:44
>         > 44        message = dbus_message_new_signal
>         ("/com/burtonini/dbus/ping",
>         > (gdb) next
>         > 47        dbus_message_append_args (message, 
>         > (gdb)
>         >
>         > Program received signal SIGSEGV, Segmentation fault.
>         > 0xb7cec253 in strlen () from /lib/libc.so.6
>         > (gdb) bt
>         > #0  0xb7cec253 in strlen () from /lib/libc.so.6
>         > #1  0xb7eb2751 in ?? () from /usr/lib/libdbus- 1.so.3
>         > #2  0x676e6950 in ?? ()
>         > #3  0x00000061 in ?? ()
>         > #4  0x0000006c in ?? ()
>         > #5  0xbfe8d398 in ?? ()
>         > #6  0xb7dbbff4 in ?? () from /lib/libc.so.6
>         > #7  0xb7dbd120 in ?? () from /lib/libc.so.6 
>         > #8  0x0000000c in ?? ()
>         > #9  0xb7eb3a3c in ?? () from /usr/lib/libdbus-1.so.3
>         > #10 0xb7ce7b7e in malloc () from /lib/libc.so.6
>         > #11 0xb7e9f4cc in ?? () from /usr/lib/libdbus-1.so.3
>         > #12 0x0804bb50 in ?? () 
>         > #13 0x00000000 in ?? ()
>         > (gdb) quit
>         > The program is running.  Exit anyway? (y or n) y
>         > bash-3.1#
>         >
>         >
>         > Log of runing under valgrind is attached also
>         >
>         
>           char *ping = "Ping!"; 
>           dbus_message_append_args (message,
>                                     DBUS_TYPE_STRING, &ping,
>         
>         is the correct way to go
>         
>         - --
>         Rafaël Carré
>         -----BEGIN PGP SIGNATURE-----
>         Version: GnuPG v1.4.6 (GNU/Linux) 
>         Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>         
>         iD8DBQFHHfeiYWCeGMCv8Q8RAh5xAJ4jTutO7trbdMAOQHQ9shRQLlr6wQCZAYWU 
>         LtIq8fHm9ukaqH4ygohzx+Y=
>         =lhVY
>         -----END PGP SIGNATURE----- 
> 
> 
> 
> _______________________________________________
> dbus mailing list
> dbus at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dbus


More information about the dbus mailing list