On Wed, Feb 15, 2017 at 2:22 AM, Anton Khirnov <an...@khirnov.net> wrote:
> Quoting Vittorio Giovara (2017-02-10 22:08:07)
>> From: Aaron Colwell <acolw...@google.com>
>>
>> Signed-off-by: James Almer <jamr...@gmail.com>
>> ---
>>  libavformat/mov.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavformat/mov.c b/libavformat/mov.c
>> index 2810960..4a6f9c0 100644
>> --- a/libavformat/mov.c
>> +++ b/libavformat/mov.c
>> @@ -3255,7 +3255,7 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext 
>> *pb, MOVAtom atom)
>>          return 0;
>>      }
>>      avio_skip(pb, 4); /*  version + flags */
>> -    avio_skip(pb, avio_r8(pb)); /* metadata_source */
>> +    avio_skip(pb, size - 12); /* metadata_source */
>>
>>      size = avio_rb32(pb);
>>      if (size > atom.size)
>> @@ -3268,7 +3268,7 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext 
>> *pb, MOVAtom atom)
>>      }
>>
>>      size = avio_rb32(pb);
>> -    if (size > atom.size)
>> +    if (size <= 12 || size > atom.size)
>>          return AVERROR_INVALIDDATA;
>>
>>      tag = avio_rl32(pb);
>> --
>> 2.10.0
>
> The first hunk looks ok, but the second one is strange? Why specifically
> that check. I see a bunch of similar code in this function where similar
> checks might also make sense, yet one is added only here.

hm, yes, the < 12 check should be *before* the first chunk, i guess
git am got confused to which block of code the diff belonged to (and I
didn't check either).
I'll send an updated version, thanks for spotting.
-- 
Vittorio
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to