webmdec: fix double free
authorJames Zern <jzern@google.com>
Tue, 19 Apr 2022 02:10:11 +0000 (19:10 -0700)
committerJames Zern <jzern@google.com>
Tue, 19 Apr 2022 02:14:30 +0000 (19:14 -0700)
when no frames were decoded, for example due to a decoder initialization
failure, an orphan buffer pointer from webm_guess_framerate() via
webm_read_frame() would have been freed during cleanup

Change-Id: I6ea3defdd13dd75427f79c516e207b682391e4fa

webmdec.cc

index 68c6f47..f7671bb 100644 (file)
@@ -210,6 +210,8 @@ int webm_guess_framerate(struct WebmInputContext *webm_ctx,
   vpx_ctx->framerate.denominator =
       static_cast<int>(webm_ctx->timestamp_ns / 1000);
   delete[] buffer;
+  // webm_ctx->buffer is assigned to the buffer pointer in webm_read_frame().
+  webm_ctx->buffer = nullptr;
 
   get_first_cluster(webm_ctx);
   webm_ctx->block = nullptr;