[libav-devel] [PATCH 1/5] cinepak: Fix division by zero, ask for sample if encoded_buf_size is 0

Martin Storsjö martin at martin.st
Fri Nov 18 11:24:41 CET 2011


On Fri, 18 Nov 2011, Luca Barbato wrote:

> On 18/11/11 10:32, Kostya Shishkov wrote:
>> On Fri, Nov 18, 2011 at 11:28:19AM +0200, Martin Storsjö wrote:
>>> From: Michael Niedermayer <michaelni at gmx.at>
>>>
>>> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
>>> ---
>>>  libavcodec/cinepak.c |    4 ++++
>>>  1 files changed, 4 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/libavcodec/cinepak.c b/libavcodec/cinepak.c
>>> index f8b5352..0dbdeab 100644
>>> --- a/libavcodec/cinepak.c
>>> +++ b/libavcodec/cinepak.c
>>> @@ -330,6 +330,10 @@ static int cinepak_decode (CinepakContext *s)
>>>
>>>      /* if this is the first frame, check for deviant Sega FILM data */
>>>      if (s->sega_film_skip_bytes == -1) {
>>> +        if (!encoded_buf_size) {
>>> +            av_log_ask_for_sample(s->avctx, "encoded_buf_size is 0");
>>> +            return -1;
>>> +        }
>>>          if (encoded_buf_size != s->size && (s->size % encoded_buf_size) != 0) {
>>>              /* If the encoded frame size differs from the frame size as indicated
>>>               * by the container file, this data likely comes from a Sega FILM/CPK file.
>>> -- 
>> 
>
> Don't we have an AVERROR specific?

Only AVERROR_PATCHWELCOME which is a different case. A better generic 
option of course could be used, but the file itself is filled with "return 
-1", so there's more to do if you want to clean it up :-)

// Martin


More information about the libav-devel mailing list