From 790f4dd5c96f948a637a90899b5f6af34ccb3942 Mon Sep 17 00:00:00 2001 From: Laurent Aimar Date: Sun, 11 Sep 2011 19:17:41 +0200 Subject: Fixed segfault on corrupted sega streams in the demuxer. Signed-off-by: Janne Grunau --- libavformat/segafilm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'libavformat/segafilm.c') diff --git a/libavformat/segafilm.c b/libavformat/segafilm.c index 81f04c6c01..32a979f1a3 100644 --- a/libavformat/segafilm.c +++ b/libavformat/segafilm.c @@ -176,6 +176,8 @@ static int film_read_header(AVFormatContext *s, if(film->sample_count >= UINT_MAX / sizeof(film_sample)) return -1; film->sample_table = av_malloc(film->sample_count * sizeof(film_sample)); + if (!film->sample_table) + return AVERROR(ENOMEM); for(i=0; inb_streams; i++) av_set_pts_info(s->streams[i], 33, 1, film->base_clock); @@ -199,7 +201,7 @@ static int film_read_header(AVFormatContext *s, if (film->audio_type == CODEC_ID_ADPCM_ADX) audio_frame_counter += (film->sample_table[i].sample_size * 32 / (18 * film->audio_channels)); - else + else if (film->audio_type != CODEC_ID_NONE) audio_frame_counter += (film->sample_table[i].sample_size / (film->audio_channels * film->audio_bits / 8)); } else { -- cgit v1.2.3