mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
libavcodec/exr : fix channel size calculation for uint32 channel
uint32 need 4 bytes not 1.
Fix decoding when there is half/float and uint32 channel.
This fixes crashes due to pointer corruption caused by invalid writes.
The problem was introduced in commit
03152e74df
.
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
This commit is contained in:
parent
ce3147eb19
commit
52da3f6f70
@ -1448,7 +1448,11 @@ static int decode_header(EXRContext *s)
|
||||
channel->xsub = xsub;
|
||||
channel->ysub = ysub;
|
||||
|
||||
s->current_channel_offset += 1 << current_pixel_type;
|
||||
if (current_pixel_type == EXR_HALF) {
|
||||
s->current_channel_offset += 2;
|
||||
} else {/* Float or UINT32 */
|
||||
s->current_channel_offset += 4;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check if all channels are set with an offset or if the channels
|
||||
|
Loading…
Reference in New Issue
Block a user