From d96b8144c0058586d3c3472de2621d105f0aa620 Mon Sep 17 00:00:00 2001 From: Martin Vignali Date: Sat, 25 Jun 2016 18:24:12 +0200 Subject: [PATCH] avcodec/exr: add missed hunks from previous exr commit --- libavcodec/exr.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavcodec/exr.c b/libavcodec/exr.c index 05e72d8440..c87187c05c 100644 --- a/libavcodec/exr.c +++ b/libavcodec/exr.c @@ -980,12 +980,19 @@ static int b44_uncompress(EXRContext *s, const uint8_t *src, int compressed_size } target_channel_offset += 2; } else {/* Float or UINT 32 channel */ + if (stayToUncompress < td->ysize * td->xsize * 4) { + av_log(s, AV_LOG_ERROR, "Not enough data for uncompress channel: %d", stayToUncompress); + return AVERROR_INVALIDDATA; + } + for (y = 0; y < td->ysize; y++) { indexOut = target_channel_offset * td->xsize + y * td->channel_line_size; memcpy(&td->uncompressed_data[indexOut], sr, td->xsize * 4); sr += td->xsize * 4; } target_channel_offset += 4; + + stayToUncompress -= td->ysize * td->xsize * 4; } }