summaryrefslogtreecommitdiff
path: root/libavcodec/libx264.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-02-22 02:49:33 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-02-22 02:55:51 +0100
commit066dc0437368acd21546ee327a0a94c60c3808b2 (patch)
tree2cdb60df381c5bfce8d54931e1749b432aecd4d9 /libavcodec/libx264.c
parent21518f5a0a6b644d1dedda5650c15bc3df62a567 (diff)
avcodec/libx264: Check for av_malloc() failure
Fixes CID1257813 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/libx264.c')
-rw-r--r--libavcodec/libx264.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index 4da0ee0d84..ac536dc561 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -700,6 +700,8 @@ static av_cold int X264_init(AVCodecContext *avctx)
s = x264_encoder_headers(x4->enc, &nal, &nnal);
avctx->extradata = p = av_malloc(s);
+ if (!p)
+ goto nomem;
for (i = 0; i < nnal; i++) {
/* Don't put the SEI in extradata. */
@@ -707,6 +709,8 @@ static av_cold int X264_init(AVCodecContext *avctx)
av_log(avctx, AV_LOG_INFO, "%s\n", nal[i].p_payload+25);
x4->sei_size = nal[i].i_payload;
x4->sei = av_malloc(x4->sei_size);
+ if (!x4->sei)
+ goto nomem;
memcpy(x4->sei, nal[i].p_payload, nal[i].i_payload);
continue;
}
@@ -717,6 +721,9 @@ static av_cold int X264_init(AVCodecContext *avctx)
}
return 0;
+nomem:
+ X264_close(avctx);
+ return AVERROR(ENOMEM);
}
static const enum AVPixelFormat pix_fmts_8bit[] = {