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 755033 - GstMssManifest: inconsistent data type for structure set makes coredump
GstMssManifest: inconsistent data type for structure set makes coredump
Status: RESOLVED DUPLICATE of bug 741751
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
1.5.90
Other Windows
: Normal normal
: 2.x
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 755035 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2015-09-15 07:09 UTC by WeiChungChang
Modified: 2015-09-16 08:41 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description WeiChungChang 2015-09-15 07:09:40 UTC
e
Comment 1 WeiChungChang 2015-09-15 07:12:47 UTC
I met a system crash when I use smoothstreaming for streaming.

The crash log is as below:

  • #0 g_str_hash
    from /mtd_apexe/board/lib/gstreamer/libglib-2.0.so.0.4200.2

After doing trace, I found the potential root cause and had fixed it.

The root cause of my platform comes from following line within function =
static GstCaps *
_gst_mss_stream_audio_caps_from_qualitylevel_xml (GstMssStreamQuality * q)

Where the structure set actions =

  if (q->bitrate)
    gst_structure_set (structure, "bitrate", G_TYPE_INT, (int) q->bitrate,
        NULL);

may lead to coredump.

Since q->bitrate is in guint64 so a modification of:

  if (q->bitrate)
    gst_structure_set (structure, "bitrate", G_TYPE_INT64, (int) q->bitrate,
        NULL);

resolved this issue here.

Please correct it if it really counts.

Thanks~
Comment 2 Sebastian Dröge (slomo) 2015-09-15 07:22:31 UTC
Please provide a sample stream that can reproduce this crash, or a complete backtrace with debug symbols.

The lines you mention are unlikely to cause the problem. The guint64 is casted to an int before passing to gst_structure_set(), so everything should be fine there.
Comment 3 Sebastian Dröge (slomo) 2015-09-15 07:25:34 UTC
*** Bug 755035 has been marked as a duplicate of this bug. ***
Comment 4 WeiChungChang 2015-09-16 07:16:47 UTC
Please refer to following fix; I found someone had met the same isse & fixed it.

http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=de246c6741d70077a06ea223297c5ebc57ba471c

The problem indeed counts as:

"q->bitrate is a guint64, but G_TYPE_INT may read fewer bits
off the stack, and if we pass more then the NULL sentinel
may not be found at the right place, which in turn might
lead to crashes."
Comment 5 Tim-Philipp Müller 2015-09-16 08:41:41 UTC
Thanks for following up, I will mark this a duplicate then.

*** This bug has been marked as a duplicate of bug 741751 ***