Fix for thread race heap-use-after-free

BUG=webp:385

Change-Id: I3a300b45ccae33470888cf2e35a7e937579c9409
(cherry picked from commit 569001f19f)
This commit is contained in:
Yannis Guyon 2018-06-13 10:39:37 +02:00 committed by James Zern
parent dad31750e3
commit a0b85e4a36

View File

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