[asterisk-users] More issues with Siren14 datalen == 0 packets
Joshua Colp
jcolp at digium.com
Wed Apr 12 08:19:23 CDT 2017
On Wed, Apr 12, 2017, at 10:09 AM, Richard Kenner wrote:
> > All patches need to go into JIRA with a license agreement to be
> > accepted.
>
> Understood, but I was using it as an illustration. Note, however, that,
> from a legal perspective, a patch such as this has no protectable IP (you
> can't copyright the only way of doing something) and the GNU projects
> have
> a formal rule that sufficiently-small patches need no assignments for
> that
> reason, which I suggest you may want to adopt as well.
Matt Fredrickson can pass this on and see.
>
> > > Why is samples being used as a length instead of datalen?
> >
> > Internally a signed linear factory operates in terms of samples, not the
> > data payload itself. I've also commented on your original issue in
> > regards to the siren codecs that it should NULL out the data pointer
> > itself. That is more commonly used.
>
> But I don't think that it would have helped in either case, this one
> or in func_speex.c, because neither tests for a null data pointer either.
The feed function in slinfactory explicitly does not allow frames
without a data payload to be added to the queue. It would have prevented
this crash.
>
> Can you explain the difference between "datalen" and "samples" in this
> context, shouldn't they always be related by a (small) linear factor?
Nope. The feed actually has a comment detailing a situation which
explains why we check:
/* In some cases, we can be passed a frame which has no data in
it, but
* which has a positive number of samples defined. Once such
situation is
* when a jitter buffer is in use and the jitter buffer
interpolates a frame.
* The frame it produces has data set to NULL, datalen set to 0,
and samples
* set to either 160 or 240.
> Should I open a JIRA issue for this as well?
I think the underlying issue is that the data pointer is not NULL when
it sanely should be in the codec implementation.
> Can you suggest ways of searching for other possible occurrences of
> this bug? These crashes are occurring during important conferences and
> are causing significant issues.
Not really. Frames are used a lot across Asterisk, so you have to follow
the flow based on the features in use.
--
Joshua Colp
Digium, Inc. | Senior Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - US
Check us out at: www.digium.com & www.asterisk.org
More information about the asterisk-users
mailing list