summaryrefslogtreecommitdiff
path: root/libavformat/4xm.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2014-05-03 08:50:41 +0200
committerAnton Khirnov <anton@khirnov.net>2014-05-18 10:19:35 +0200
commitd256ed78ffe202a4dcc8d625becffc716bfa3977 (patch)
tree39f2d5de3441f0ff60d4575ca227a7b8ae6a4287 /libavformat/4xm.c
parentfd056029f45a9f6d213d9fce8165632042511d4f (diff)
downloadffmpeg-d256ed78ffe202a4dcc8d625becffc716bfa3977.tar.gz
4xm: allocate extradata properly.
Pad it with the required amount of zeros, check for malloc failure.
Diffstat (limited to 'libavformat/4xm.c')
-rw-r--r--libavformat/4xm.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libavformat/4xm.c b/libavformat/4xm.c
index 7a87c3695a..6253ffb58e 100644
--- a/libavformat/4xm.c
+++ b/libavformat/4xm.c
@@ -110,8 +110,11 @@ static int parse_vtrk(AVFormatContext *s,
st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
st->codec->codec_id = AV_CODEC_ID_4XM;
+
+ st->codec->extradata = av_mallocz(4 + FF_INPUT_BUFFER_PADDING_SIZE);
+ if (!st->codec->extradata)
+ return AVERROR(ENOMEM);
st->codec->extradata_size = 4;
- st->codec->extradata = av_malloc(4);
AV_WL32(st->codec->extradata, AV_RL32(buf + 16));
st->codec->width = AV_RL32(buf + 36);
st->codec->height = AV_RL32(buf + 40);