summaryrefslogtreecommitdiffstats
path: root/third_party
diff options
context:
space:
mode:
Diffstat (limited to 'third_party')
-rw-r--r--third_party/libwebp/README.chromium1
-rw-r--r--third_party/libwebp/dec/idec.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/third_party/libwebp/README.chromium b/third_party/libwebp/README.chromium
index 4bb032b..9a81604 100644
--- a/third_party/libwebp/README.chromium
+++ b/third_party/libwebp/README.chromium
@@ -25,3 +25,4 @@ Cherry-picks:
f5fbdee demux: stricter image bounds check
a03c351 Demux: WebPIterator now also denotes if the frame has alpha.
6284854b Support for "Do not blend" in mux and demux libraries
+ 40ae352 Fix memleak in WebPIDelete()
diff --git a/third_party/libwebp/dec/idec.c b/third_party/libwebp/dec/idec.c
index 5fbf49a..61635ec 100644
--- a/third_party/libwebp/dec/idec.c
+++ b/third_party/libwebp/dec/idec.c
@@ -606,6 +606,10 @@ void WebPIDelete(WebPIDecoder* idec) {
if (idec == NULL) return;
if (idec->dec_ != NULL) {
if (!idec->is_lossless_) {
+ if (idec->state_ == STATE_VP8_DATA) {
+ // Synchronize the thread, clean-up and check for errors.
+ VP8ExitCritical(idec->dec_, &idec->io_);
+ }
VP8Delete(idec->dec_);
} else {
VP8LDelete(idec->dec_);