[FFmpeg-cvslog] lavc/psymodel: check for av_malloc failure

Ganesh Ajjanagadde git at videolan.org
Wed Mar 23 18:10:32 CET 2016


ffmpeg | branch: master | Ganesh Ajjanagadde <gajjanag at gmail.com> | Wed Mar  2 20:14:08 2016 -0500| [8dbffda0f9401644467111c85090fa0e8091e08a] | committer: Ganesh Ajjanagadde

lavc/psymodel: check for av_malloc failure

No idea why in commit 01ecb7172b684f1c4b3e748f95c5a9a494ca36ec the
checks were removed; this can lead to NULL pointer dereferences. This
effectively reverts that portion of the commit.

Reviewed-by: Benoit Fouet <benoit.fouet at free.fr>
Reviewed-by: Rostislav Pehlivanov <atomnuker at gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanag at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8dbffda0f9401644467111c85090fa0e8091e08a
---

 libavcodec/psymodel.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/libavcodec/psymodel.c b/libavcodec/psymodel.c
index 6274a49..2b5f111 100644
--- a/libavcodec/psymodel.c
+++ b/libavcodec/psymodel.c
@@ -120,7 +120,12 @@ av_cold struct FFPsyPreprocessContext* ff_psy_preprocess_init(AVCodecContext *av
                                                  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->fcoeffs);
+                av_free(ctx);
+                return NULL;
+            }
             for (i = 0; i < avctx->channels; i++)
                 ctx->fstate[i] = ff_iir_filter_init_state(FILT_ORDER);
         }



More information about the ffmpeg-cvslog mailing list