mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
dirac_vlc: fix undefined shifts
Shifting by more than 63 bits is undefined behavior, athough any compiler not returning 0 after shifting by any amount would be insane. Found by Coverity, fixes CID1363959 and CID1363960 Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
This commit is contained in:
parent
e879819e7b
commit
e24c31b656
@ -37,7 +37,7 @@ int ff_dirac_golomb_read_32bit(DiracGolombLUT *lut_ctx, const uint8_t *buf,
|
||||
int i, b, c_idx = 0;
|
||||
int32_t *dst = (int32_t *)_dst;
|
||||
DiracGolombLUT *future[4], *l = &lut_ctx[2*LUT_SIZE + buf[0]];
|
||||
INIT_RESIDUE(res, 0, 0);
|
||||
INIT_RESIDUE(res, 0, 1);
|
||||
|
||||
#define APPEND_RESIDUE(N, M) \
|
||||
N |= M >> (N ## _bits); \
|
||||
@ -81,7 +81,7 @@ int ff_dirac_golomb_read_16bit(DiracGolombLUT *lut_ctx, const uint8_t *buf,
|
||||
int i, b, c_idx = 0;
|
||||
int16_t *dst = (int16_t *)_dst;
|
||||
DiracGolombLUT *future[4], *l = &lut_ctx[2*LUT_SIZE + buf[0]];
|
||||
INIT_RESIDUE(res, 0, 0);
|
||||
INIT_RESIDUE(res, 0, 1);
|
||||
|
||||
#define APPEND_RESIDUE(N, M) \
|
||||
N |= M >> (N ## _bits); \
|
||||
|
Loading…
Reference in New Issue
Block a user