[FFmpeg-cvslog] check for coded_frame allocation failure in several audio encoders
Justin Ruggles
git at videolan.org
Sun Feb 26 05:21:46 CET 2012
ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Wed Feb 15 19:26:09 2012 -0500| [a8bdf2405c6027f45a899eaaa6ba74e97c1c2701] | committer: Justin Ruggles
check for coded_frame allocation failure in several audio encoders
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a8bdf2405c6027f45a899eaaa6ba74e97c1c2701
---
libavcodec/libgsm.c | 4 ++++
libavcodec/libopencore-amr.c | 3 +++
libavcodec/libvo-aacenc.c | 2 ++
libavcodec/libvo-amrwbenc.c | 2 ++
libavcodec/mpegaudioenc.c | 2 ++
libavcodec/pcm.c | 2 ++
libavcodec/roqaudioenc.c | 2 ++
7 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/libavcodec/libgsm.c b/libavcodec/libgsm.c
index b917cc3..fb7b196 100644
--- a/libavcodec/libgsm.c
+++ b/libavcodec/libgsm.c
@@ -70,6 +70,10 @@ static av_cold int libgsm_encode_init(AVCodecContext *avctx) {
}
avctx->coded_frame= avcodec_alloc_frame();
+ if (!avctx->coded_frame) {
+ gsm_destroy(avctx->priv_data);
+ return AVERROR(ENOMEM);
+ }
return 0;
}
diff --git a/libavcodec/libopencore-amr.c b/libavcodec/libopencore-amr.c
index ded9217..ebbc0d9 100644
--- a/libavcodec/libopencore-amr.c
+++ b/libavcodec/libopencore-amr.c
@@ -196,10 +196,13 @@ static av_cold int amr_nb_encode_init(AVCodecContext *avctx)
avctx->frame_size = 160;
avctx->coded_frame = avcodec_alloc_frame();
+ if (!avctx->coded_frame)
+ return AVERROR(ENOMEM);
s->enc_state = Encoder_Interface_init(s->enc_dtx);
if (!s->enc_state) {
av_log(avctx, AV_LOG_ERROR, "Encoder_Interface_init error\n");
+ av_freep(&avctx->coded_frame);
return -1;
}
diff --git a/libavcodec/libvo-aacenc.c b/libavcodec/libvo-aacenc.c
index 280ba27..0a4a270 100644
--- a/libavcodec/libvo-aacenc.c
+++ b/libavcodec/libvo-aacenc.c
@@ -39,6 +39,8 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
int index;
avctx->coded_frame = avcodec_alloc_frame();
+ if (!avctx->coded_frame)
+ return AVERROR(ENOMEM);
avctx->frame_size = 1024;
voGetAACEncAPI(&s->codec_api);
diff --git a/libavcodec/libvo-amrwbenc.c b/libavcodec/libvo-amrwbenc.c
index 5214ee6..7e87210 100644
--- a/libavcodec/libvo-amrwbenc.c
+++ b/libavcodec/libvo-amrwbenc.c
@@ -87,6 +87,8 @@ static av_cold int amr_wb_encode_init(AVCodecContext *avctx)
avctx->frame_size = 320;
avctx->coded_frame = avcodec_alloc_frame();
+ if (!avctx->coded_frame)
+ return AVERROR(ENOMEM);
s->state = E_IF_init();
diff --git a/libavcodec/mpegaudioenc.c b/libavcodec/mpegaudioenc.c
index d2b1e70..455c4b2 100644
--- a/libavcodec/mpegaudioenc.c
+++ b/libavcodec/mpegaudioenc.c
@@ -181,6 +181,8 @@ static av_cold int MPA_encode_init(AVCodecContext *avctx)
}
avctx->coded_frame= avcodec_alloc_frame();
+ if (!avctx->coded_frame)
+ return AVERROR(ENOMEM);
return 0;
}
diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c
index 2e0b5ec..d040745 100644
--- a/libavcodec/pcm.c
+++ b/libavcodec/pcm.c
@@ -49,6 +49,8 @@ static av_cold int pcm_encode_init(AVCodecContext *avctx)
avctx->bits_per_coded_sample = av_get_bits_per_sample(avctx->codec->id);
avctx->block_align = avctx->channels * avctx->bits_per_coded_sample/8;
avctx->coded_frame= avcodec_alloc_frame();
+ if (!avctx->coded_frame)
+ return AVERROR(ENOMEM);
return 0;
}
diff --git a/libavcodec/roqaudioenc.c b/libavcodec/roqaudioenc.c
index e2d0f38..3747f18 100644
--- a/libavcodec/roqaudioenc.c
+++ b/libavcodec/roqaudioenc.c
@@ -59,6 +59,8 @@ static av_cold int roq_dpcm_encode_init(AVCodecContext *avctx)
context->lastSample[0] = context->lastSample[1] = 0;
avctx->coded_frame= avcodec_alloc_frame();
+ if (!avctx->coded_frame)
+ return AVERROR(ENOMEM);
return 0;
}
More information about the ffmpeg-cvslog
mailing list