]> granicus.if.org Git - libvpx/commitdiff
vp8_yv12_realloc_frame_buffer: move allocation check
authorJames Zern <jzern@google.com>
Fri, 8 Oct 2021 23:24:23 +0000 (16:24 -0700)
committerJames Zern <jzern@google.com>
Fri, 8 Oct 2021 23:26:26 +0000 (16:26 -0700)
to before the memset used under msan to avoid any spurious reports in
OOM conditions

Change-Id: I0c4ee92829bbcb356e94f503a4615caf891bb49d

vpx_scale/generic/yv12config.c

index eee291c30d8bcf01bc11b36e09544c66dee9e7ec..c52dab058815155b3d00d1ce9cbdc6842a04a0e7 100644 (file)
@@ -64,6 +64,10 @@ int vp8_yv12_realloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width,
 
     if (!ybf->buffer_alloc) {
       ybf->buffer_alloc = (uint8_t *)vpx_memalign(32, frame_size);
+      if (!ybf->buffer_alloc) {
+        ybf->buffer_alloc_sz = 0;
+        return -1;
+      }
 #if defined(__has_feature)
 #if __has_feature(memory_sanitizer)
       // This memset is needed for fixing the issue of using uninitialized
@@ -75,7 +79,7 @@ int vp8_yv12_realloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width,
       ybf->buffer_alloc_sz = frame_size;
     }
 
-    if (!ybf->buffer_alloc || ybf->buffer_alloc_sz < frame_size) return -1;
+    if (ybf->buffer_alloc_sz < frame_size) return -1;
 
     /* Only support allocating buffers that have a border that's a multiple
      * of 32. The border restriction is required to get 16-byte alignment of