diff options
Diffstat (limited to 'libavformat/electronicarts.c')
-rw-r--r-- | libavformat/electronicarts.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c index 43d1f26a8e..a0007d2982 100644 --- a/libavformat/electronicarts.c +++ b/libavformat/electronicarts.c @@ -221,10 +221,6 @@ static int process_audio_header_eacs(AVFormatContext *s) ea->sample_rate = ea->big_endian ? avio_rb32(pb) : avio_rl32(pb); ea->bytes = avio_r8(pb); /* 1=8-bit, 2=16-bit */ - if(ea->bytes == 0){ - av_log(s,AV_LOG_ERROR,"the file is corrupted, ea->bytes = 0\n"); - return AVERROR_INVALIDDATA; - } ea->num_channels = avio_r8(pb); compression_type = avio_r8(pb); avio_skip(pb, 13); @@ -440,6 +436,11 @@ static int ea_read_header(AVFormatContext *s, ea->audio_codec = 0; return 1; } + if (ea->bytes <= 0) { + av_log(s, AV_LOG_ERROR, "Invalid number of bytes per sample: %d\n", ea->bytes); + ea->audio_codec = CODEC_ID_NONE; + return 1; + } /* initialize the audio decoder stream */ st = avformat_new_stream(s, NULL); |