[FFmpeg-devel] [PATCH 3/3] avcodec/wmalosslessdec: Fix some integer anomalies

Paul B Mahol onemda at gmail.com
Mon Oct 28 20:22:11 EET 2019


Trivial change, LGTM

On 10/28/19, Michael Niedermayer <michael at niedermayer.cc> wrote:
> Fixes: left shift of negative value -341180
> Fixes:
> 18401/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMALOSSLESS_fuzzer-5686380134400000
>
> Found-by: continuous fuzzing process
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> ---
>  libavcodec/wmalosslessdec.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c
> index 19bac949d4..d4f18b9841 100644
> --- a/libavcodec/wmalosslessdec.c
> +++ b/libavcodec/wmalosslessdec.c
> @@ -766,7 +766,7 @@ static void revert_cdlms ## bits (WmallDecodeCtx *s, int
> ch, \
>      for (ilms = num_lms - 1; ilms >= 0; ilms--) { \
>          for (icoef = coef_begin; icoef < coef_end; icoef++) { \
>              int##bits##_t *prevvalues = (int##bits##_t
> *)s->cdlms[ch][ilms].lms_prevvalues; \
> -            pred = 1 << (s->cdlms[ch][ilms].scaling - 1); \
> +            pred = (1 << s->cdlms[ch][ilms].scaling) >> 1; \
>              residue = s->channel_residues[ch][icoef]; \
>              pred += s->dsp.scalarproduct_and_madd_int## bits
> (s->cdlms[ch][ilms].coefs, \
>                                                          prevvalues +
> s->cdlms[ch][ilms].recent, \
> @@ -987,9 +987,9 @@ static int decode_subframe(WmallDecodeCtx *s)
>
>          for (j = 0; j < subframe_len; j++) {
>              if (s->bits_per_sample == 16) {
> -                *s->samples_16[c]++ = (int16_t) s->channel_residues[c][j]
> << padding_zeroes;
> +                *s->samples_16[c]++ = (int16_t) s->channel_residues[c][j] *
> (1 << padding_zeroes);
>              } else {
> -                *s->samples_32[c]++ = s->channel_residues[c][j] <<
> (padding_zeroes + 8);
> +                *s->samples_32[c]++ = s->channel_residues[c][j] * (256 <<
> padding_zeroes);
>              }
>          }
>      }
> --
> 2.23.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list