From cbfa9eecf497417ebe9a828b39ded310e0e65684 Mon Sep 17 00:00:00 2001 From: James Zern Date: Tue, 31 Jul 2012 11:59:54 -0700 Subject: [PATCH] lossless: fix crash on user abort avoid free on uninitialized bit writer buffer Change-Id: I1a41b2cea421bf5a2ea0af33c6e84018cb997caf --- src/enc/vp8l.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/enc/vp8l.c b/src/enc/vp8l.c index 82bef500..362b767b 100644 --- a/src/enc/vp8l.c +++ b/src/enc/vp8l.c @@ -1051,11 +1051,14 @@ int VP8LEncodeImage(const WebPConfig* const config, if (config == NULL || picture->argb == NULL) { err = VP8_ENC_ERROR_NULL_PARAMETER; - goto Error; + WebPEncodingSetError(picture, err); + return 0; } width = picture->width; height = picture->height; + VP8LBitWriterInit(&bw, (width * height) >> 1); + if (!WebPReportProgress(picture, 1, &percent)) { UserAbort: err = VP8_ENC_ERROR_USER_ABORT; @@ -1073,7 +1076,6 @@ int VP8LEncodeImage(const WebPConfig* const config, } // Write image size. - VP8LBitWriterInit(&bw, (width * height) >> 1); if (!WriteImageSize(picture, &bw)) { err = VP8_ENC_ERROR_OUT_OF_MEMORY; goto Error;