Merge the 2019-08-01 SPL branch from AOSP-Partner

* security-aosp-nyc-mr2-release:
  Fixes a double free in ContentEncoding
  Check there is only one settings per ContentCompression

Change-Id: Ie6c576b0d7a31c6599cfda4ca717bc7c41d083cc
diff --git a/libwebm/mkvparser/mkvparser.cc b/libwebm/mkvparser/mkvparser.cc
index 70c1f04..efd3545 100644
--- a/libwebm/mkvparser/mkvparser.cc
+++ b/libwebm/mkvparser/mkvparser.cc
@@ -4233,6 +4233,7 @@
         new (std::nothrow) ContentEncryption*[encryption_count];
     if (!encryption_entries_) {
       delete[] compression_entries_;
+      compression_entries_ = NULL;
       return -1;
     }
     encryption_entries_end_ = encryption_entries_;
@@ -4328,6 +4329,12 @@
         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;
     }