aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Galligan <fgalligan@google.com>2019-05-10 17:42:46 -0700
committerRay Essick <essick@google.com>2019-05-15 18:07:32 +0000
commit0fbbf3c3e05647aa10174a1876e02ba6a2ec631d (patch)
tree5a67b89344c8138a674a9c68daa89ae7b07617f4
parent0f998713686da56f36a5b603a4897fe5952c0370 (diff)
downloadlibvpx-0fbbf3c3e05647aa10174a1876e02ba6a2ec631d.tar.gz
Check there is only one settings per ContentCompression
This fixes a memory leak with invalid files. BUG: 127702368 Merged-In: Id7de1f8c35ef2f6458c6fb6c7751a84fe43ed1cc Change-Id: I73bd34e212d74ffcf8d428e01b5269037147bf8c
-rw-r--r--libwebm/mkvparser/mkvparser.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/libwebm/mkvparser/mkvparser.cc b/libwebm/mkvparser/mkvparser.cc
index 70c1f043f..87adef336 100644
--- a/libwebm/mkvparser/mkvparser.cc
+++ b/libwebm/mkvparser/mkvparser.cc
@@ -4328,6 +4328,12 @@ long ContentEncoding::ParseCompressionEntry(long long start, long long size,
return status;
}
+ // There should be only one settings element per content compression.
+ if (compression->settings != NULL) {
+ delete[] buf;
+ return E_FILE_FORMAT_INVALID;
+ }
+
compression->settings = buf;
compression->settings_len = buflen;
}