I was running vic on a FreeBSD 4.6.2-RELEASE machine. I
was recasting RTP packets without an RTCP stream to vic
one after the other, and on the third stream in
sequence mash segfaulted. Here is the backtrace:
Core was generated by `mash-5.2.1'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libXext.so.6...done.
Reading symbols from /usr/lib/libX11.so.6...done.
Reading symbols from /usr/lib/libstdc++.so.3...done.
Reading symbols from /usr/lib/libm.so.2...done.
Reading symbols from /usr/lib/libc.so.4...done.
Reading symbols from /usr/X11R6/lib/libX11.so.6...done.
Reading symbols from
/usr/X11R6/lib/libXThrStub.so.6...done.
Reading symbols from /usr/libexec/ld-elf.so.1...done.
#0 0x8190b20 in StringCreate () at embedded-tclobj.cc:1247
1247 EmbeddedTcl et_tclobject(code);
(gdb) bt
#0 0x8190b20 in StringCreate () at embedded-tclobj.cc:1247
#1 0x81b30cd in TclLookupVar () at embedded-tclobj.cc:1247
#2 0x81b5706 in MakeUpvar () at embedded-tclobj.cc:1247
#3 0x81b5a9d in Tcl_UpVar () at embedded-tclobj.cc:1247
#4 0x81699b4 in OTclOInstVarOne (obj=0x861ea00,
in=0x8380400,
frameName=0x82a4ccb "1", varName=0x84dd2a8 "src_",
localName=0x84dd2a8 "src_", flags=0) at otcl.c:1497
#5 0x8169a73 in OTclOInstVarMethod (cd=0x861ea00,
in=0x8380400, argc=7,
argv=0xbfbfea68) at otcl.c:1522
#6 0x8167e38 in OTclDispatch (cd=0x861ea00,
in=0x8380400, argc=5,
argv=0xbfbfeab8) at otcl.c:446
#7 0x816c8e4 in TclInvokeStringCommand () at
embedded-tclobj.cc:1247
#8 0x81876cb in TclExecuteByteCode () at
embedded-tclobj.cc:1247
#9 0x816d33b in Tcl_EvalObjEx () at
embedded-tclobj.cc:1247
#10 0x81aa5b1 in TclObjInterpProc () at
embedded-tclobj.cc:1247
#11 0x81aa161 in TclProcInterpProc () at
embedded-tclobj.cc:1247
#12 0x8167e38 in OTclDispatch (cd=0x861ea00,
in=0x8380400, argc=2,
argv=0xbfbff168) at otcl.c:446
#13 0x816c8e4 in TclInvokeStringCommand () at
embedded-tclobj.cc:1247
#14 0x81a3774 in EvalObjv () at embedded-tclobj.cc:1247
#15 0x81a3e7e in Tcl_EvalEx () at embedded-tclobj.cc:1247
#16 0x81afbde in AfterProc () at embedded-tclobj.cc:1247
#17 0x81af3a7 in TimerHandlerEventProc () at
embedded-tclobj.cc:1247
---Type <return> to continue, or q <return> to quit---
#18 0x81a1526 in Tcl_ServiceEvent () at
embedded-tclobj.cc:1247
#19 0x81a1805 in Tcl_DoOneEvent () at
embedded-tclobj.cc:1247
#20 0x80e9c32 in Tk_MainLoop () at gen/tk_prolog.cc:287
#21 0x80f0698 in Tk_MainEx () at gen/tk_prolog.cc:287
#22 0x804ef80 in main (argc=6, argv=0xbfbff6fc) at
./mash-main.cc:83
#23 0x804eed1 in _start ()
Logged In: YES
user_id=238724
This segfault seems to be related to a problem where the
source RTP stream contained two non-adjacent packets delayed
for a significant amount of time. Non-adjacent means two
packets which do not really belong to the same stream. This
may have been sending an invalid RTP packet.