[FFmpeg-devel] [libav-devel] [PATCH] wmavoice: limit wmavoice_decode_packet return value to packet size
Michael Niedermayer
michaelni at gmx.at
Sun Jun 28 16:26:33 CEST 2015
On Sun, Jun 28, 2015 at 01:39:41PM +0200, Andreas Cadhalpun wrote:
> On 28.06.2015 13:13, Ronald S. Bultje wrote:
> > On Sun, Jun 28, 2015 at 5:28 AM, Andreas Cadhalpun
> >> Treating one like an error, but not the other seems strange as well.
> >> One could add an explode mode for both. Would that be better?
> >
> >
> > In the first case, it's an error. If the frame size is 2 bits, the header
> > is 1, and it specifies a spillover bits of 2, then the frame is clearly
> > corrupt. Returning an error is fine. The ffmin() isn't necessary. I also
> > don't think an explode mode check is necessary here, it's a clear error
> > that is unrecoverable for this frame.
>
> I've no strong preference. Attached is a variant just returning an error.
>
> > In the second case, does that actually happen?
>
> Yes.
>
> > Wmavoice is one of the
> > limited number of decoders that internally checks for overreads.
> > get_bits_count() should never overread.
>
> It doesn't check everywhere:
> /* Statistics? FIXME - we don't check for length, a slight overrun
> * will be caught by internal buffer padding, and anything else
> * will be skipped, not read. */
> if (get_bits1(gb)) {
> res = get_bits(gb, 4);
> skip_bits(gb, 10 * (res + 1));
> }
>
> > Do you have samples for which this happens?
>
> Yes.
>
> > We currently basically return an error on any possible overread
> > signified in the bitstream (without actually overreading), so doing so here
> > also would make sense (if it really happens at all).
>
> OK.
>
> > (We could also remove all the overread checks in the decoder, make it use
> > the safe bitstream reader mode, and then check for overreads at the end of
> > synth_superframe or in the caller, and then return an error. I have no
> > specific preference, and this may lead to less code overall.)
>
> That should work as well, but would be a larger change.
>
> Best regards,
> Andreas
> wmavoice.c | 18 ++++++++++++++++--
> 1 file changed, 16 insertions(+), 2 deletions(-)
> 6c2b085ae9d64d9d8ae33efa4f554f23df98922c 0001-wmavoice-limit-wmavoice_decode_packet-return-value-t.patch
> From 34aa9dd95c57039d56a07d0c9dfc837dd2199af8 Mon Sep 17 00:00:00 2001
> From: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
> Date: Sun, 28 Jun 2015 12:40:12 +0200
> Subject: [PATCH] wmavoice: limit wmavoice_decode_packet return value to packet
> size
>
> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
LGTM
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Into a blind darkness they enter who follow after the Ignorance,
they as if into a greater darkness enter who devote themselves
to the Knowledge alone. -- Isha Upanishad
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150628/0a3a362c/attachment.asc>
More information about the ffmpeg-devel
mailing list