Merge commit 'b98f082d8ddc0a0d8317114d8414ab51de60ef02'
authorJames Almer <jamrial@gmail.com>
Wed, 1 Nov 2017 17:07:48 +0000 (14:07 -0300)
committerJames Almer <jamrial@gmail.com>
Wed, 1 Nov 2017 17:07:48 +0000 (14:07 -0300)
* commit 'b98f082d8ddc0a0d8317114d8414ab51de60ef02':
  smacker: Check that the data size is a multiple of a sample vector

See 4a9af07a49295e014b059c1ab624c40345af5892

Merged-by: James Almer <jamrial@gmail.com>
1  2 
libavcodec/smacker.c

@@@ -658,15 -636,18 +658,16 @@@ static int smka_decode_frame(AVCodecCon
          av_log(avctx, AV_LOG_ERROR, "sample format mismatch\n");
          return AVERROR(EINVAL);
      }
 +
 +    /* get output buffer */
 +    frame->nb_samples = unp_size / (avctx->channels * (bits + 1));
      if (unp_size % (avctx->channels * (bits + 1))) {
-         av_log(avctx, AV_LOG_ERROR, "unp_size %d is odd\n", unp_size);
+         av_log(avctx, AV_LOG_ERROR,
+                "The buffer does not contain an integer number of samples\n");
          return AVERROR(EINVAL);
      }
 -
 -    /* get output buffer */
 -    frame->nb_samples = unp_size / (avctx->channels * (bits + 1));
 -    if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) {
 -        av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
 +    if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
          return ret;
 -    }
      samples  = (int16_t *)frame->data[0];
      samples8 =            frame->data[0];