avcodec/exif: do not follow 0 offsets
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 20 Apr 2014 02:13:43 +0000 (04:13 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 20 Apr 2014 15:02:16 +0000 (17:02 +0200)
Fixes exif decoding failure of 1295328_300.jpg

Reviewed-by; Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/exif.c

index 0f3f80c..a980da2 100644 (file)
@@ -78,6 +78,11 @@ static int exif_decode_tag(AVCodecContext *avctx, GetByteContext *gbytes, int le
 
     ff_tread_tag(gbytes, le, &id, &type, &count, &cur_pos);
 
+    if (!bytestream2_tell(gbytes)) {
+        bytestream2_seek(gbytes, cur_pos, SEEK_SET);
+        return 0;
+    }
+
     // read count values and add it metadata
     // store metadata or proceed with next IFD
     ret = ff_tis_ifd(id);