[asterisk-dev] 1.6.1.10-rc1 crash on a VOLUME() func

Kaloyan Kovachev kkovachev at varna.net
Sun Nov 8 06:43:11 CST 2009


On Sun, 8 Nov 2009 14:33:06 +0200, Kaloyan Kovachev wrote
> On Sat, 7 Nov 2009 10:40:13 +0100, Pavel Troller wrote
> > Hi!
> >   I just upgraded to 1.6.1.10-rc1 and it started to crash occasionally. By
> > test-calling, I found that just one dialplan extension is causing the crash,
> > which contained a Set(VOLUME(TX)=2) command.
> >   The crash is detected as:
> > *** glibc detected *** /opt/asterisk/sbin/asterisk: double free or
> corruption (!prev): 0x092e7bc0 ***
> >   but it seems that it doesn't appear directly in the code of the function
> > mentioned; it looks that it just corrupts (or frees) some structure in memory,
> > which then causes a subsequent crash at another place. Because func_volume.c
> > code didn't change since I'm tracking the sources (from 1.6.1.0), it looks
that
> > some other change made the VOLUME() function incompatible with the current
> > code, or some hidden bug present in the code for a longer time has been
> > activated. I was trying to find a cause in the patch text, but I failed.
> >   I just know, that
> >   1) In 1.6.1.7-rc2 it was working perfectly
> >   2) In 1.6.10.1-rc1, removing the above command prevents the crashes.
> > 
> >   Any help would be appreciated; I'm ready to experiment with possible
patches.
> >
> 
> It is probably not the patch you are loking for, but there is one 'ready for
> review' at https://issues.asterisk.org/view.php?id=14621 which is a rewrite of
> function volume ... it may or may not fix your crash ... in case there are
> some changes in the audiohooks code - the crash might be because they were not
> made to the function's own audiohook implementation
> 

the audiohooks code was changed in
http://svnview.digium.com/svn/asterisk?view=revision&revision=224858 
I guess at line 648:
 if (audiohook->manipulate_callback(audiohook, chan, middle_frame, direction)) {

should be:
if (audiohook->manipulate_callback(audiohook, chan, middle_frame, direction)
&& middle_frame) {

> >   With regards, Pavel Troller
> > 
> > _______________________________________________
> > --Bandwidth and Colocation Provided by http://www.api-digital.com--
> > 
> > asterisk-dev mailing list
> > To UNSUBSCRIBE or update options visit:
> >    http://lists.digium.com/mailman/listinfo/asterisk-dev
> 
> _______________________________________________
> --Bandwidth and Colocation Provided by http://www.api-digital.com--
> 
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev




More information about the asterisk-dev mailing list