summaryrefslogtreecommitdiff
path: root/webmdec.cc
diff options
context:
space:
mode:
authorJames Zern <jzern@google.com>2022-04-18 19:10:11 -0700
committerJames Zern <jzern@google.com>2022-04-18 19:14:30 -0700
commit665f6a3065555317e75915af2561cf9b776e50b6 (patch)
tree82e1122b7b1f52399fa6b6d947ada86dda82aeb3 /webmdec.cc
parent6ea4ef1d24f84d131e0a4398bf358bfd79bc88c3 (diff)
downloadlibvpx-665f6a3065555317e75915af2561cf9b776e50b6.tar
libvpx-665f6a3065555317e75915af2561cf9b776e50b6.tar.gz
libvpx-665f6a3065555317e75915af2561cf9b776e50b6.tar.bz2
libvpx-665f6a3065555317e75915af2561cf9b776e50b6.zip
webmdec: fix double free
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
Diffstat (limited to 'webmdec.cc')
-rw-r--r--webmdec.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/webmdec.cc b/webmdec.cc
index 68c6f4782..f7671bb64 100644
--- a/webmdec.cc
+++ b/webmdec.cc
@@ -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;