[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