[gst-devel] false alarm?

Joshua N Pritikin vishnu at pobox.com
Mon Jan 6 20:18:02 CET 2003


On Mon, Jan 06, 2003 at 11:37:13PM +0530, Joshua N Pritikin wrote:
> ==16671== Invalid read of size 4
> ==16671==    at 0x42DE35BC: gst_mpeg_parse_parse_packhead (gstmpegparse.c:348)
> ==16671==    by 0x42DE5746: gst_mpeg_demux_parse_packhead (gstmpegdemux.c:296)
> ==16671==    by 0x42DE3C51: gst_mpeg_parse_loop (gstmpegparse.c:444)
> ==16671==    by 0x4201AA21: loop_group_schedule_function (gstoptimalscheduler.c:797)
> ==16671==    by 0x4201A4AD: schedule_group (gstoptimalscheduler.c:668)
> ==16671==    by 0x4201A5C0: gst_opt_scheduler_schedule_run_queue (gstoptimalscheduler.c:695)
> ==16671==    by 0x4201A74D: schedule_chain (gstoptimalscheduler.c:734)
> ==16671==    by 0x4201BE0B: gst_opt_scheduler_iterate (gstoptimalscheduler.c:1564)
> ==16671==    Address 0x41D5ED8D is 9 bytes inside a block of size 12 alloc'd
> ==16671==    at 0x401649B8: malloc (vg_clientfuncs.c:100)
> ==16671==    by 0x40729A86: g_malloc (in /usr/lib/libglib-2.0.so.0.0.6)
> ==16671==    by 0x42020490: gst_bytestream_assemble (bytestream.c:344)
> ==16671==    by 0x42020326: gst_bytestream_peek (bytestream.c:275)
> ==16671==    by 0x420208FE: gst_bytestream_read (bytestream.c:524)
> ==16671==    by 0x42DE8080: parse_packhead (gstmpegpacketize.c:85)
> ==16671==    by 0x42DE8311: gst_mpeg_packetize_read (gstmpegpacketize.c:218)
> ==16671==    by 0x42DE3A83: gst_mpeg_parse_loop (gstmpegparse.c:411)

This is not false alarm.  This is a real bug.  When i run my code without
valgrind but with MALLOC_CHECK_ enabled, i get the following SEGV in the
*same* *place*:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 567)]
0x408525bc in gst_mpeg_parse_parse_packhead (mpeg_parse=0x80aba98, buffer=0x806c088)
    at gstmpegparse.c:348
348         new_rate = (GUINT32_FROM_BE ((*(guint32 *) buf)) & 0x7ffffe00) >> 9;
(gdb) where
#0  0x408525bc in gst_mpeg_parse_parse_packhead (mpeg_parse=0x80aba98, buffer=0x806c088)
    at gstmpegparse.c:348
#1  0x40854747 in gst_mpeg_demux_parse_packhead (mpeg_parse=0x80aba98, buffer=0x806c088)
    at gstmpegdemux.c:296
#2  0x40852c52 in gst_mpeg_parse_loop (element=0x80aba98) at gstmpegparse.c:444
#3  0x40816a22 in loop_group_schedule_function (argc=0, argv=0x80ae5d0)
    at gstoptimalscheduler.c:797
#4  0x408164ae in schedule_group (group=0x80ae5d0) at gstoptimalscheduler.c:668
#5  0x408165c1 in gst_opt_scheduler_schedule_run_queue (osched=0x80a51a0)
    at gstoptimalscheduler.c:695
#6  0x4081674e in schedule_chain (chain=0x80ae5b0) at gstoptimalscheduler.c:734
#7  0x40817e0c in gst_opt_scheduler_iterate (sched=0x80a51a0) at gstoptimalscheduler.c:1564
#8  0x400460bc in gst_scheduler_iterate (sched=0x80a51a0) at gstscheduler.c:689
#9  0x40028222 in gst_bin_iterate_func (bin=0x80a43b8) at gstbin.c:857
#10 0x4002838b in gst_bin_iterate (bin=0x80a43b8) at gstbin.c:900
#11 0x0804e3b4 in gst_iterate (_ign=0x0) at mkindex.c:105
#12 0x4055f136 in g_timeout_add () from /usr/lib/libglib-2.0.so.0
#13 0x4055ca19 in g_get_current_time () from /usr/lib/libglib-2.0.so.0
#14 0x4055d837 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#15 0x4055dc13 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#16 0x4055e2ef in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#17 0x0804e5b0 in mkindex (path=0x80652e8 "/local/aleader/original/nausicaa1.mpg")
    at mkindex.c:164

-- 
Victory to the Divine Mother!!         after all,
  http://sahajayoga.org                  http://why-compete.org




More information about the gstreamer-devel mailing list