summaryrefslogtreecommitdiff
path: root/libavformat/nutdec.c
diff options
context:
space:
mode:
authorHugo Beauzée-Luyssen <hugo@beauzee.fr>2015-02-01 19:19:47 +0100
committerVittorio Giovara <vittorio.giovara@gmail.com>2015-02-17 12:16:43 -0500
commit3035d21b5a77df0e9531df397fc06d59488996c7 (patch)
tree2a558a3ce54f4a822c2365a0ae5094abbb918a1d /libavformat/nutdec.c
parenta8765852158ecb2ae34895fa35ff51dc95c186f9 (diff)
nutdec: Check memory allocations
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Diffstat (limited to 'libavformat/nutdec.c')
-rw-r--r--libavformat/nutdec.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c
index 00da7dded0..87d29f1cc4 100644
--- a/libavformat/nutdec.c
+++ b/libavformat/nutdec.c
@@ -231,6 +231,8 @@ static int decode_main_header(NUTContext *nut)
GET_V(nut->time_base_count, tmp > 0 && tmp < INT_MAX / sizeof(AVRational));
nut->time_base = av_malloc(nut->time_base_count * sizeof(AVRational));
+ if (!nut->time_base)
+ return AVERROR(ENOMEM);
for (i = 0; i < nut->time_base_count; i++) {
GET_V(nut->time_base[i].num, tmp > 0 && tmp < (1ULL << 31));
@@ -332,6 +334,8 @@ static int decode_main_header(NUTContext *nut)
}
nut->stream = av_mallocz(sizeof(StreamContext) * stream_count);
+ if (!nut->stream)
+ return AVERROR(ENOMEM);
for (i = 0; i < stream_count; i++)
avformat_new_stream(s, NULL);
@@ -405,6 +409,8 @@ static int decode_stream_header(NUTContext *nut)
if (st->codec->extradata_size) {
st->codec->extradata = av_mallocz(st->codec->extradata_size +
FF_INPUT_BUFFER_PADDING_SIZE);
+ if (!st->codec->extradata)
+ return AVERROR(ENOMEM);
avio_read(bc, st->codec->extradata, st->codec->extradata_size);
}
@@ -609,6 +615,8 @@ static int find_and_decode_index(NUTContext *nut)
GET_V(syncpoint_count, tmp < INT_MAX / 8 && tmp > 0);
syncpoints = av_malloc(sizeof(int64_t) * syncpoint_count);
has_keyframe = av_malloc(sizeof(int8_t) * (syncpoint_count + 1));
+ if (!syncpoints || !has_keyframe)
+ return AVERROR(ENOMEM);
for (i = 0; i < syncpoint_count; i++) {
syncpoints[i] = ffio_read_varlen(bc);
if (syncpoints[i] <= 0)