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 787061 - qtdemux: segmentation fauit with protected DASH streams
qtdemux: segmentation fauit with protected DASH streams
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.12.2
Other Linux
: Normal major
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-08-31 08:40 UTC by Juergen Sachs
Modified: 2018-11-03 15:21 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
detailed gdb backtrace (2.95 KB, text/plain)
2017-08-31 08:40 UTC, Juergen Sachs
  Details
propsed workaround to avoid the crash (1.07 KB, patch)
2017-08-31 09:00 UTC, Juergen Sachs
none Details | Review

Description Juergen Sachs 2017-08-31 08:40:56 UTC
Created attachment 358824 [details]
detailed gdb backtrace

When decoding a protected DASH stream, the qtdemux raises a segmentation fault. This can be reproduced by
  gst-launch-1.0 http://freenettvcon10-i.akamaihd.net/dash/live/499767/freenet10/dash.mpd
The stream is the DASH source of a freenet.TV internet connect service "Insight (connect". Obviously this content is protected. Gstreamer should not crash event we no not have any protection handling plugin.

The crash occures in qtdemux when the audio init segment is parsed:
=====
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 2062]
0xb0469428 in __gst_slow_read32_le (data=0x78657278 <Address 0x78657278 out of bounds>)
    at /home/metz/Projekte/G_SX7/DCP_SYS/Install/Core/.tmp/include/gstreamer-1.0/gst/gstutils.h:255
255	  return _GST_READ_UINT32_LE (data);
(gdb) bt
  • #0 __gst_slow_read32_le
    at /home/metz/Projekte/G_SX7/DCP_SYS/Install/Core/.tmp/include/gstreamer-1.0/gst/gstutils.h line 255
  • #1 qtdemux_parse_trak
    at /home/metz/Projekte/G_SX7/DCP_SYS/Media/GST-1.0/gst-plugins-good/gst/isomp4/qtdemux.c line 11140

Comment 1 Juergen Sachs 2017-08-31 09:00:22 UTC
Created attachment 358830 [details] [review]
propsed workaround to avoid the crash

Obviously the crash is caused by use of unintialized variables. In the testcase there is only audio in the MP4 multiplex and at line 11140 the unitialized mp4v is evaluated. 
Please review lines 11140ff generally, 
- is it really necessary to evaluate video components in audio case?
- the protection handling for audio at this line is different from video at line 10023ff. Is this really the intention? Shouldn't this be "symmetrically"?
Comment 2 GStreamer system administrator 2018-11-03 15:21:39 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/398.