Merge commit '03927cb73399e6f07185fc7f8851d7612b4187b6'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 1 Jun 2015 00:23:32 +0000 (02:23 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 1 Jun 2015 00:23:32 +0000 (02:23 +0200)
* commit '03927cb73399e6f07185fc7f8851d7612b4187b6':
  psymodel: Check memory allocation

Conflicts:
libavcodec/psymodel.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/psymodel.c

@@@ -35,10 -35,16 +35,16 @@@ av_cold int ff_psy_init(FFPsyContext *c
      int i, j, k = 0;
  
      ctx->avctx = avctx;
 -    ctx->ch        = av_mallocz(sizeof(ctx->ch[0]) * avctx->channels * 2);
 -    ctx->group     = av_mallocz(sizeof(ctx->group[0]) * num_groups);
 -    ctx->bands     = av_malloc (sizeof(ctx->bands[0])     * num_lens);
 -    ctx->num_bands = av_malloc (sizeof(ctx->num_bands[0]) * num_lens);
 +    ctx->ch        = av_mallocz_array(sizeof(ctx->ch[0]), avctx->channels * 2);
 +    ctx->group     = av_mallocz_array(sizeof(ctx->group[0]), num_groups);
 +    ctx->bands     = av_malloc_array (sizeof(ctx->bands[0]),      num_lens);
 +    ctx->num_bands = av_malloc_array (sizeof(ctx->num_bands[0]),  num_lens);
+     if (!ctx->ch || !ctx->group || !ctx->bands || !ctx->num_bands) {
+         ff_psy_end(ctx);
+         return AVERROR(ENOMEM);
+     }
      memcpy(ctx->bands,     bands,     sizeof(ctx->bands[0])     *  num_lens);
      memcpy(ctx->num_bands, num_bands, sizeof(ctx->num_bands[0]) *  num_lens);
  
@@@ -112,7 -116,11 +120,11 @@@ av_cold struct FFPsyPreprocessContext* 
                                               FF_FILTER_MODE_LOWPASS, FILT_ORDER,
                                               cutoff_coeff, 0.0, 0.0);
      if (ctx->fcoeffs) {
 -        ctx->fstate = av_mallocz(sizeof(ctx->fstate[0]) * avctx->channels);
 +        ctx->fstate = av_mallocz_array(sizeof(ctx->fstate[0]), avctx->channels);
+         if (!ctx->fstate) {
+             av_free(ctx);
+             return NULL;
+         }
          for (i = 0; i < avctx->channels; i++)
              ctx->fstate[i] = ff_iir_filter_init_state(FILT_ORDER);
      }