From d7f10b24975f06e0865f071c4ca5c9cadaf8b8bb Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Tue, 23 Feb 2021 12:30:55 +0100 Subject: [PATCH] avcodec/exrenc: use correct type for actual_size as argument for zlib --- libavcodec/exrenc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavcodec/exrenc.c b/libavcodec/exrenc.c index 305d44ad2d..7d1d4fa4d8 100644 --- a/libavcodec/exrenc.c +++ b/libavcodec/exrenc.c @@ -251,6 +251,7 @@ static int encode_scanline_zip(EXRContext *s, const AVFrame *frame) const int scanline_height = FFMIN(s->scanline_height, frame->height - y * s->scanline_height); int64_t tmp_size = 4LL * s->planes * frame->width * scanline_height; int64_t max_compressed_size = tmp_size * 3 / 2; + unsigned long actual_size, source_size; av_fast_padded_malloc(&scanline->uncompressed_data, &scanline->uncompressed_size, tmp_size); if (!scanline->uncompressed_data) @@ -278,10 +279,12 @@ static int encode_scanline_zip(EXRContext *s, const AVFrame *frame) reorder_pixels(scanline->tmp, scanline->uncompressed_data, tmp_size); predictor(scanline->tmp, tmp_size); - scanline->actual_size = max_compressed_size; - compress(scanline->compressed_data, &scanline->actual_size, - scanline->tmp, tmp_size); + source_size = tmp_size; + actual_size = max_compressed_size; + compress(scanline->compressed_data, &actual_size, + scanline->tmp, source_size); + scanline->actual_size = actual_size; if (scanline->actual_size >= tmp_size) { FFSWAP(uint8_t *, scanline->uncompressed_data, scanline->compressed_data); FFSWAP(int, scanline->uncompressed_size, scanline->compressed_size);