lossless: fix crash on user abort

avoid free on uninitialized bit writer buffer

Change-Id: I1a41b2cea421bf5a2ea0af33c6e84018cb997caf
This commit is contained in:
James Zern 2012-07-31 11:59:54 -07:00
parent a7cc729126
commit cbfa9eecf4

View File

@ -1051,11 +1051,14 @@ int VP8LEncodeImage(const WebPConfig* const config,
if (config == NULL || picture->argb == NULL) { if (config == NULL || picture->argb == NULL) {
err = VP8_ENC_ERROR_NULL_PARAMETER; err = VP8_ENC_ERROR_NULL_PARAMETER;
goto Error; WebPEncodingSetError(picture, err);
return 0;
} }
width = picture->width; width = picture->width;
height = picture->height; height = picture->height;
VP8LBitWriterInit(&bw, (width * height) >> 1);
if (!WebPReportProgress(picture, 1, &percent)) { if (!WebPReportProgress(picture, 1, &percent)) {
UserAbort: UserAbort:
err = VP8_ENC_ERROR_USER_ABORT; err = VP8_ENC_ERROR_USER_ABORT;
@ -1073,7 +1076,6 @@ int VP8LEncodeImage(const WebPConfig* const config,
} }
// Write image size. // Write image size.
VP8LBitWriterInit(&bw, (width * height) >> 1);
if (!WriteImageSize(picture, &bw)) { if (!WriteImageSize(picture, &bw)) {
err = VP8_ENC_ERROR_OUT_OF_MEMORY; err = VP8_ENC_ERROR_OUT_OF_MEMORY;
goto Error; goto Error;