mov: Fix spherical metadata_source parsing
authorAaron Colwell <acolwell@google.com>
Fri, 27 Jan 2017 17:33:29 +0000 (09:33 -0800)
committerVittorio Giovara <vittorio.giovara@gmail.com>
Tue, 7 Mar 2017 16:07:01 +0000 (11:07 -0500)
Signed-off-by: James Almer <jamrial@gmail.com>
libavformat/mov.c

index 5c9f85c..d5de5d6 100644 (file)
@@ -3252,7 +3252,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);
@@ -3261,7 +3261,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)