vp9_alloccommon: add missing pointer checks
authorJames Zern <jzern@google.com>
Tue, 19 Apr 2022 01:56:49 +0000 (18:56 -0700)
committerJames Zern <jzern@google.com>
Tue, 19 Apr 2022 01:56:49 +0000 (18:56 -0700)
in vp9_free_ref_frame_buffers() and vp9_free_context_buffers(); pool and
free_mi may be NULL due to earlier allocation failures

Change-Id: I3bd26ea29b3aea6c58f33d5b7f5a280eb6250ec7

vp9/common/vp9_alloccommon.c

index 5702dca..faad657 100644 (file)
@@ -73,6 +73,8 @@ static void free_seg_map(VP9_COMMON *cm) {
 void vp9_free_ref_frame_buffers(BufferPool *pool) {
   int i;
 
+  if (!pool) return;
+
   for (i = 0; i < FRAME_BUFFERS; ++i) {
     if (!pool->frame_bufs[i].released &&
         pool->frame_bufs[i].raw_frame_buffer.data != NULL) {
@@ -100,7 +102,7 @@ void vp9_free_postproc_buffers(VP9_COMMON *cm) {
 }
 
 void vp9_free_context_buffers(VP9_COMMON *cm) {
-  cm->free_mi(cm);
+  if (cm->free_mi) cm->free_mi(cm);
   free_seg_map(cm);
   vpx_free(cm->above_context);
   cm->above_context = NULL;