Bug#266907: Asterisk crashes using i4l driver (FIX)

Enrique Zanardi Enrique Zanardi <ezanardi@conysis.com>, 266907@bugs.debian.org
Fri, 20 Aug 2004 09:54:56 +0100


On Fri, Aug 20, 2004 at 09:35:58AM +0100, Enrique Zanardi wrote:
> On Fri, Aug 20, 2004 at 09:15:14AM +0100, Enrique Zanardi wrote:
> > On Thu, Aug 19, 2004 at 08:42:48PM +0200, Jose Carlos Garcia Sogo wrote:
> > > severity 266907 important
> > > thanks
> > > 
> > > On Thu, Aug 19, 2004 at 06:32:56PM +0200, Alessandro Polverini wrote:
> > > > Package: asterisk
> > > > Version: 1:0.9.1+1.0RC1-8
> > > > Severity: grave
> > > > Justification: renders package unusable
> > > > 
> > > > I'm using a HFC-S based ISDN card with the i4l driver.
> > > > If I enable dtmf mode detection by asterisk, during a call, at random,
> > > > asterisk crashes with Floating Point Exception.
> > > > Everything works fine if I use dtmfmode=none or dtmfmodem=i4l.
> > > 
> > >   Sorry, but for your description the package is not unusable. It only
> > >   fails when setting that option, but works fine without it.
> > 
> > I've reproduced the bug with any value of dtmfmode. I'm using a
> > HFC-PCI ISDN card with the i4l driver.
> 
> Perhaps this has something to do with it: (from asterisk CVS changelog)
> 
> 2004-08-19 14:52  markster
> 
>         * dsp.c (1.29): Fix divide by zero (bugs #2268 and 2259)

Looking at the bugs description, yes, it's the same bug. And the fix is
"trivial":


*** dsp.c.orig	2004-08-20 09:42:31.000000000 +0100
--- dsp.c	2004-08-20 09:43:14.000000000 +0100
***************
*** 1231,1236 ****
--- 1231,1239 ----
  	int x;
  	int res = 0;
  	
+ 	if (!len)
+ 		return 0;
+ 
  	accum = 0;
  	for (x=0;x<len; x++) 
  		accum += abs(s[x]);


-- 
Enrique Zanardi					ezanard@debian.org