diff --git a/src/enc/alpha.c b/src/enc/alpha.c index 97538da9..51a8cd10 100644 --- a/src/enc/alpha.c +++ b/src/enc/alpha.c @@ -84,8 +84,8 @@ static int EncodeLossless(const uint8_t* const data, int width, int height, config.quality = 10.f + 15.f * effort_level; if (config.quality > 100.f) config.quality = 100.f; - VP8LBitWriterInit(&tmp_bw, (width * height) >> 3); - ok = (VP8LEncodeStream(&config, &picture, &tmp_bw) == VP8_ENC_OK); + ok = VP8LBitWriterInit(&tmp_bw, (width * height) >> 3); + ok = ok && (VP8LEncodeStream(&config, &picture, &tmp_bw) == VP8_ENC_OK); WebPPictureFree(&picture); if (ok) { const uint8_t* const data = VP8LBitWriterFinish(&tmp_bw); diff --git a/src/enc/vp8l.c b/src/enc/vp8l.c index 362b767b..2d82ce26 100644 --- a/src/enc/vp8l.c +++ b/src/enc/vp8l.c @@ -1057,7 +1057,10 @@ int VP8LEncodeImage(const WebPConfig* const config, width = picture->width; height = picture->height; - VP8LBitWriterInit(&bw, (width * height) >> 1); + if (!VP8LBitWriterInit(&bw, (width * height) >> 1)) { + err = VP8_ENC_ERROR_OUT_OF_MEMORY; + goto Error; + } if (!WebPReportProgress(picture, 1, &percent)) { UserAbort: