[Gstreamer-bugs] [Bug 137448] New - mpegaudioparse: crash (bus error)

bugzilla-daemon at widget.gnome.org bugzilla-daemon at widget.gnome.org
Tue Mar 16 18:09:07 PST 2004


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

http://bugzilla.gnome.org/show_bug.cgi?id=137448

Changed by t.i.m at zen.co.uk.

--- shadow/137448	Tue Mar 16 21:09:06 2004
+++ shadow/137448.tmp.5554	Tue Mar 16 21:09:07 2004
@@ -0,0 +1,98 @@
+Bug#: 137448
+Product: GStreamer
+Version: HEAD CVS
+OS: Linux
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: normal
+Priority: Normal
+Component: gst-plugins
+AssignedTo: gstreamer-maint at bugzilla.gnome.org                            
+ReportedBy: t.i.m at zen.co.uk               
+QAContact: gstreamer-maint at bugzilla.gnome.org
+TargetMilestone: HEAD
+URL: 
+Summary: mpegaudioparse: crash (bus error)
+
+This is with gstreamer/gst-plugins 0.8.0.1: 
+ 
+ 
+sceptic [tim] - ~ ---> gst-launch-0.8 filesrc location="foo.mp3" ! 
+mp3parse ! fakesink 
+RUNNING pipeline ... 
+Bus error 
+ 
+ 
+ 
+sceptic [tim] - ~ ---> valgrind --num-callers=10 gst-launch-0.8 filesrc 
+location="foo.mp3" ! mp3parse ! fakesink 
+==23066== Using valgrind-2.1.1, a program supervision framework for 
+x86-linux. (snip) 
+==23066== warning: Valgrind's pthread_getschedparam is incomplete 
+==23066==          your program may misbehave as a result 
+RUNNING pipeline ... 
+==23066== 
+==23066== Process terminating with default action of signal 7 (SIGBUS): 
+dumping core 
+==23066==  Non-existent physical address at address 0x3CE54000 
+==23066==    at 0x3C8D4685: gst_mp3parse_chain (gstmpegaudioparse.c:333) 
+==23066==    by 0x3C8DD3DF: gst_opt_scheduler_chain_wrapper 
+(gstoptimalscheduler.c:1325) 
+==23066==    by 0x3C0728A7: gst_pad_push (gstpad.c:3034) 
+==23066==    by 0x3C8DC9FA: get_group_schedule_function 
+(gstoptimalscheduler.c:1138) 
+==23066==    by 0x3C8DC4A1: schedule_group (gstoptimalscheduler.c:1007) 
+==23066==    by 0x3C8DC565: gst_opt_scheduler_schedule_run_queue 
+(gstoptimalscheduler.c:1050) 
+==23066==    by 0x3C8DC7A9: schedule_chain (gstoptimalscheduler.c:1092) 
+==23066==    by 0x3C8DFAB4: gst_opt_scheduler_iterate 
+(gstoptimalscheduler.c:2279) 
+==23066==    by 0x3C07D8E8: gst_scheduler_iterate (gstscheduler.c:712) 
+==23066==    by 0x3C052C43: gst_bin_iterate_func (gstbin.c:1109) 
+==23066== 
+==23066== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 49 from 2) 
+==23066== malloc/free: in use at exit: 401744 bytes in 6566 blocks. 
+==23066== malloc/free: 108386 allocs, 101820 frees, 8176280 bytes 
+allocated. 
+==23066== For a detailed leak analysis,  rerun with: --leak-check=yes 
+==23066== For counts of detected errors, rerun with: -v 
+Bus error 
+ 
+ 
+ 
+Given the (re-)indenting going on currently, I'll paste the relevant 
+lines from gst-plugins/gst/mpegaudioparse/gstmpegaudioparse.c as well 
+(sorry for the flood): 
+ 
+   326    /* while we still have bytes left -4 for the header */ 
+   327    while (offset < size - 4) { 
+   328      int skipped = 0; 
+   329 
+   330      GST_DEBUG ("mp3parse: offset %ld, size %ld ", offset, size); 
+   331 
+   332      /* search for a possible start byte */ 
+   333      for (; ((data[offset] != 0xff) && (offset < size)); offset++) 
+   334        skipped++; 
+   335      if (skipped && !mp3parse->in_flush) { 
+   336        GST_DEBUG ("mp3parse: **** now at %ld skipped %d bytes", 
+offset, skipped); 
+   337      } 
+   338      /* construct the header word */ 
+   339      header = GUINT32_FROM_BE (*((guint32 *) (data + offset))); 
+   340      /* if it's a valid header, go ahead and send off the frame */ 
+   341      if (head_check (header)) { 
+   342        /* calculate the bpf of the frame */ 
+   343        bpf = bpf_from_header (mp3parse, header); 
+ 
+ 
+ 
+ 
+The offending mp3 file can be found here: 
+ 
+   http://www.zen18864.zen.co.uk/tmp/gst-mp3parse-bug-foo.bz2 
+ 
+I'll attach the gstreamer debug output. 
+ 
+Cheers 
+-Tim




More information about the Gstreamer-bugs mailing list