Commit 03927cb7 authored by Vittorio Giovara's avatar Vittorio Giovara Committed by Luca Barbato

psymodel: Check memory allocation

parent fef2f472
...@@ -39,6 +39,12 @@ av_cold int ff_psy_init(FFPsyContext *ctx, AVCodecContext *avctx, int num_lens, ...@@ -39,6 +39,12 @@ av_cold int ff_psy_init(FFPsyContext *ctx, AVCodecContext *avctx, int num_lens,
ctx->group = av_mallocz(sizeof(ctx->group[0]) * num_groups); ctx->group = av_mallocz(sizeof(ctx->group[0]) * num_groups);
ctx->bands = av_malloc (sizeof(ctx->bands[0]) * num_lens); ctx->bands = av_malloc (sizeof(ctx->bands[0]) * num_lens);
ctx->num_bands = av_malloc (sizeof(ctx->num_bands[0]) * num_lens); ctx->num_bands = av_malloc (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->bands, bands, sizeof(ctx->bands[0]) * num_lens);
memcpy(ctx->num_bands, num_bands, sizeof(ctx->num_bands[0]) * num_lens); memcpy(ctx->num_bands, num_bands, sizeof(ctx->num_bands[0]) * num_lens);
...@@ -98,6 +104,8 @@ av_cold struct FFPsyPreprocessContext* ff_psy_preprocess_init(AVCodecContext *av ...@@ -98,6 +104,8 @@ av_cold struct FFPsyPreprocessContext* ff_psy_preprocess_init(AVCodecContext *av
int i; int i;
float cutoff_coeff = 0; float cutoff_coeff = 0;
ctx = av_mallocz(sizeof(FFPsyPreprocessContext)); ctx = av_mallocz(sizeof(FFPsyPreprocessContext));
if (!ctx)
return NULL;
ctx->avctx = avctx; ctx->avctx = avctx;
if (avctx->cutoff > 0) if (avctx->cutoff > 0)
...@@ -109,6 +117,10 @@ av_cold struct FFPsyPreprocessContext* ff_psy_preprocess_init(AVCodecContext *av ...@@ -109,6 +117,10 @@ av_cold struct FFPsyPreprocessContext* ff_psy_preprocess_init(AVCodecContext *av
cutoff_coeff, 0.0, 0.0); cutoff_coeff, 0.0, 0.0);
if (ctx->fcoeffs) { if (ctx->fcoeffs) {
ctx->fstate = av_mallocz(sizeof(ctx->fstate[0]) * avctx->channels); ctx->fstate = av_mallocz(sizeof(ctx->fstate[0]) * avctx->channels);
if (!ctx->fstate) {
av_free(ctx);
return NULL;
}
for (i = 0; i < avctx->channels; i++) for (i = 0; i < avctx->channels; i++)
ctx->fstate[i] = ff_iir_filter_init_state(FILT_ORDER); ctx->fstate[i] = ff_iir_filter_init_state(FILT_ORDER);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment