]> granicus.if.org Git - libvpx/commitdiff
Added trap for invalid key frame
authorYaowu Xu <yaowu@google.com>
Tue, 15 Oct 2013 18:05:06 +0000 (11:05 -0700)
committerYaowu Xu <yaowu@google.com>
Tue, 15 Oct 2013 20:55:25 +0000 (13:55 -0700)
Change-Id: I698e8df9b336d38bffe01e656acba00d4003695f

vp9/decoder/vp9_decodframe.c

index cc3422f970d1b0ae32902251e0172af2abb86e9c..acde390f2a92b319bd896478658970705fbd8c06 100644 (file)
@@ -955,9 +955,15 @@ int vp9_decode_frame(VP9D_COMP *pbi, const uint8_t **p_data_end) {
   YV12_BUFFER_CONFIG *new_fb = &cm->yv12_fb[cm->new_fb_idx];
 
   if (!first_partition_size) {
-    // showing a frame directly
-    *p_data_end = data + 1;
-    return 0;
+    if (!keyframe) {
+      // showing a frame directly
+      *p_data_end = data + 1;
+      return 0;
+    } else {
+      vpx_internal_error(&cm->error, VPX_CODEC_CORRUPT_FRAME,
+                         "Invalid key frame");
+      return -1;
+    }
   }
   data += vp9_rb_bytes_read(&rb);
   xd->corrupted = 0;