After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 762129 - rhythmbox segfaults in soup_server_unpause_message() when client try to connect
rhythmbox segfaults in soup_server_unpause_message() when client try to connect
Status: RESOLVED FIXED
Product: libdmapsharing
Classification: Other
Component: DAAP Server
git master
Other Linux
: Normal normal
: ---
Assigned To: W. Michael Petullo
W. Michael Petullo
Depends on:
Blocks:
 
 
Reported: 2016-02-16 10:41 UTC by Sebastien Bacher
Modified: 2016-02-20 13:49 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Don't let the new share_bitwise_t share member uninitialized (760 bytes, patch)
2016-02-17 14:11 UTC, Sebastien Bacher
none Details | Review
use g_new0 to avoid uninitialized values (750 bytes, patch)
2016-02-17 14:15 UTC, Sebastien Bacher
none Details | Review

Description Sebastien Bacher 2016-02-16 10:41:50 UTC
Using ubuntu xenial with rhythmbox 3.3, libsoup 2.52.2 and libdmapsharing 2.9.33

rhythmbox has music sharing enabled with a password, when a client try to connect/enter the password rhythmbox segfaults

that warning is displayed before the error

"Object class RBDAAPRecord doesn't implement property 'hash' from interface 'DAAPRecord'"

stacktrace

"#0  0xb533149f in soup_server_unpause_message (server=0x3ff00000, 
    msg=0x8e40358) at soup-server.c:2812
  • #1 write_next_mlit
    at dmap-share.c line 1560
  • #2 g_cclosure_marshal_VOID__VOIDv
    at /build/glib2.0-Q50eE3/glib2.0-2.47.5/./gobject/gmarshal.c line 905
  • #3 _g_closure_invoke_va
    at /build/glib2.0-Q50eE3/glib2.0-2.47.5/./gobject/gclosure.c line 867
  • #4 g_signal_emit_valist
    at /build/glib2.0-Q50eE3/glib2.0-2.47.5/./gobject/gsignal.c line 3294
  • #5 g_signal_emit
    at /build/glib2.0-Q50eE3/glib2.0-2.47.5/./gobject/gsignal.c line 3441
  • #6 soup_message_wrote_chunk
    at soup-message.c line 1100
  • #7 io_write
    at soup-message-io.c line 550
  • #8 io_run_until
    at soup-message-io.c line 984
  • #9 io_run
    at soup-message-io.c line 1053
  • #10 soup_message_io_server
    at soup-message-io.c line 1257
  • #11 soup_message_read_request
    at soup-message-server-io.c line 304
  • #12 start_request
    at soup-server.c line 1435
  • #13 g_cclosure_marshal_VOID__OBJECTv
    at /build/glib2.0-Q50eE3/glib2.0-2.47.5/./gobject/gmarshal.c line 2102
  • #14 _g_closure_invoke_va
    at /build/glib2.0-Q50eE3/glib2.0-2.47.5/./gobject/gclosure.c line 867
  • #15 g_signal_emit_valist
    at /build/glib2.0-Q50eE3/glib2.0-2.47.5/./gobject/gsignal.c line 3294
  • #16 g_signal_emit
    at /build/glib2.0-Q50eE3/glib2.0-2.47.5/./gobject/gsignal.c line 3441
  • #17 listen_watch
    at soup-socket.c line 1220

Comment 1 Sebastien Bacher 2016-02-16 10:45:06 UTC
the warning is about RBDAAPRecord so maybe a rb issue?
Comment 2 Sebastien Bacher 2016-02-17 14:11:46 UTC
Created attachment 321489 [details] [review]
Don't let the new share_bitwise_t share member uninitialized

Turned out it's an issue added with the recent 2.9.33 update and commit https://git.gnome.org/browse/libdmapsharing/commit/?id=f6a4a648c5b1faf835c634d28289b6adfc5673b7

The share_bitwise->share value is never set
Comment 3 Sebastien Bacher 2016-02-17 14:15:49 UTC
Created attachment 321490 [details] [review]
use g_new0 to avoid uninitialized values

that makes debugging such issues easier, in that case share=null
Comment 4 Sebastien Bacher 2016-02-17 17:02:26 UTC
there seems to be other issues with that commit, rhythmbox also displays warning when closed

g_value_set_object: assertion 'G_IS_OBJECT (v_object)' failed

from_dmap_share_get_property()

	case PROP_SERVER:
		g_value_set_object (value, share->priv->server);
Comment 5 W. Michael Petullo 2016-02-18 04:02:41 UTC
I just pushed some changes. Would you please test Git master?
Comment 6 Sebastien Bacher 2016-02-18 10:02:42 UTC
> I just pushed some changes. Would you please test Git master?

no segfault and no gobject warnings with, thanks!

it would still be good to have the g_new0 change in I guess?

(also unsure how you apply the change but if you use the attached file it should keep the author info, instead of having to credit in the message)
Comment 7 W. Michael Petullo 2016-02-20 13:49:26 UTC
This problem is fixed in 2.9.34.