X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fflacdec.c;h=c8eb456049db080fc06136130e1721eb2a18f74e;hb=d168e78effd170377ec57f67bca05c9f0de91bca;hp=6c8ba157773b98c4351f48d4e0fdcd55a664eaf7;hpb=2f96190732d15510ba29471fa45d66841c0c3df1;p=ffmpeg diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c index 6c8ba157773..c8eb456049d 100644 --- a/libavcodec/flacdec.c +++ b/libavcodec/flacdec.c @@ -302,7 +302,7 @@ static int decode_subframe_fixed(FLACContext *s, int32_t *decoded, if (pred_order > 2) c = b - decoded[pred_order-2] + decoded[pred_order-3]; if (pred_order > 3) - d = c - decoded[pred_order-2] + 2*decoded[pred_order-3] - decoded[pred_order-4]; + d = c - decoded[pred_order-2] + 2U*decoded[pred_order-3] - decoded[pred_order-4]; switch (pred_order) { case 0: @@ -460,7 +460,7 @@ static inline int decode_subframe(FLACContext *s, int channel) return AVERROR_INVALIDDATA; } - if (wasted) { + if (wasted && wasted < 32) { int i; for (i = 0; i < s->blocksize; i++) decoded[i] = (unsigned)decoded[i] << wasted;