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 351790 - [ogmparse] crash parsing video stream on x86-64
[ogmparse] crash parsing video stream on x86-64
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 0.10.10
Assigned To: Tim-Philipp Müller
Maintainer alias for GStreamer component of Totem
Depends on:
Blocks:
 
 
Reported: 2006-08-17 16:52 UTC by Bastien Nocera
Modified: 2006-08-23 12:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
possible fix (1.44 KB, patch)
2006-08-23 11:44 UTC, Tim-Philipp Müller
committed Details | Review

Description Bastien Nocera 2006-08-17 16:52:57 UTC
gstreamer-plugins-bad-0.10.3-2
gstreamer-plugins-good-devel-0.10.3.2-0.gst.1.5
gstreamer-plugins-base-0.10.9-0.gst.2.5
gstreamer-ffmpeg-0.10.1-0.gst.1.5
gstreamer-tools-0.10.9-0.gst.1.5
gstreamer-plugins-good-0.10.3.2-0.gst.1.5
gstreamer-plugins-base-devel-0.10.9-0.gst.2.5
gstreamer-0.10.9-0.gst.1.5
gstreamer-plugins-ugly-0.10.3.2-0.gst.1.5
gstreamer-devel-0.10.9-0.gst.1.5

(gdb) bt
  • #0 gst_ogm_parse_plugin_init
    from /usr/lib64/gstreamer-0.10/libgstogg.so
  • #1 gst_pad_alloc_buffer
    from /usr/lib64/libgstreamer-0.10.so.0
  • #2 gst_ogg_demux_plugin_init
    from /usr/lib64/gstreamer-0.10/libgstogg.so
  • #3 gst_ogg_demux_plugin_init
    from /usr/lib64/gstreamer-0.10/libgstogg.so
  • #4 gst_ogg_demux_plugin_init
    from /usr/lib64/gstreamer-0.10/libgstogg.so
  • #5 gst_task_set_lock
    from /usr/lib64/libgstreamer-0.10.so.0
  • #6 g_thread_pool_push
    from /usr/lib64/libglib-2.0.so.0
  • #7 g_thread_create_full
    from /usr/lib64/libglib-2.0.so.0
  • #8 start_thread
    from /lib64/libpthread.so.0
  • #9 clone
    from /lib64/libc.so.6
  • #10 ??

Comment 1 Bastien Nocera 2006-08-17 17:00:23 UTC
File is at:
http://www.hadess.net/tmp/ogg-crasher-subtitles-languages.ogg

Please make a local copy ASAP (or add it to the GStreamer test-suite :)
Comment 2 Tim-Philipp Müller 2006-08-17 17:06:37 UTC
> http://www.hadess.net/tmp/ogg-crasher-subtitles-languages.ogg
> 
> Please make a local copy ASAP (or add it to the GStreamer test-suite :)

403 - Forbidden
 

Comment 3 Bastien Nocera 2006-08-17 17:14:15 UTC
(In reply to comment #2)
> > http://www.hadess.net/tmp/ogg-crasher-subtitles-languages.ogg
> > 
> > Please make a local copy ASAP (or add it to the GStreamer test-suite :)
> 
> 403 - Forbidden

Fixed, thanks for the notice.

Comment 4 Tim-Philipp Müller 2006-08-22 14:07:56 UTC
Can't reproduce here (on x86), neither with CVS nor with older versions (like in dapper).

Any chance you could get a stack trace with proper debug symbols or run valgrind over it?


Does this also crash?

 $ gst-launch-0.10 filesrc location=foo.ogg ! decodebin ! fakesink

or

 $ gst-launch-0.10 playbin uri=file:///home/hadess/foo.ogg


Comment 5 Bastien Nocera 2006-08-22 17:54:45 UTC
This is on x86-64. Other oggs seem to play fine.

Here's the backtrace for the decodebin line above:
  • #0 gst_ogm_parse_chain
    at gstogmparse.c line 709
  • #1 gst_pad_chain_unchecked
    at gstpad.c line 3319
  • #2 gst_ogg_pad_submit_page
    at gstoggdemux.c line 903
  • #3 gst_ogg_demux_read_chain
    at gstoggdemux.c line 2268
  • #4 gst_ogg_demux_loop
    at gstoggdemux.c line 2509
  • #5 gst_task_func
    at gsttask.c line 193
  • #6 g_thread_pool_push
    from /usr/lib64/libglib-2.0.so.0
  • #7 g_thread_create_full
    from /usr/lib64/libglib-2.0.so.0
  • #8 start_thread
    from /lib64/libpthread.so.0
  • #9 clone
    from /lib64/libc.so.6
  • #10 ??

Comment 6 Tim-Philipp Müller 2006-08-23 10:47:42 UTC
Crashes because pad is NULL and GST_PAD_CAPS(pad) dereferences a NULL pointer => GStreamer bug.
Comment 7 Tim-Philipp Müller 2006-08-23 11:44:02 UTC
Created attachment 71451 [details] [review]
possible fix
Comment 8 Jan Schmidt 2006-08-23 12:02:14 UTC
Yep, works here.
Comment 9 Tim-Philipp Müller 2006-08-23 12:17:24 UTC
Thanks for testing, committed:

 2006-08-23  Tim-Philipp Müller  <tim at centricular dot net>

        * ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
          Fix crash due to broken bitstream parsing on x86-64: can't make
          any assumptions about sizeof(struct) due to alignment/packing
          differences on different architectures. Fixes #351790.