Fix for thread race heap-use-after-free

BUG=webp:385,webp:512

Change-Id: I3a300b45ccae33470888cf2e35a7e937579c9409
(cherry picked from commit 569001f19fc81fcb5ab358f587a54c62e7c4665c)
(cherry picked from commit a0b85e4a366408be8d077ec30754213bcce8aceb)
This commit is contained in:
Yannis Guyon 2018-06-13 10:39:37 +02:00 committed by James Zern
parent 16fc937d2e
commit 528c8909ef

View File

@ -283,10 +283,8 @@ static void RestoreContext(const MBContext* context, VP8Decoder* const dec,
static VP8StatusCode IDecError(WebPIDecoder* const idec, VP8StatusCode error) {
if (idec->state_ == STATE_VP8_DATA) {
VP8Io* const io = &idec->io_;
if (io->teardown != NULL) {
io->teardown(io);
}
// Synchronize the thread, clean-up and check for errors.
VP8ExitCritical((VP8Decoder*)idec->dec_, &idec->io_);
}
idec->state_ = STATE_ERROR;
return error;