From 6a6268987ececafa20bb47b02c75783f3eabd59c Mon Sep 17 00:00:00 2001
From: Daniel Kang <daniel.d.kang@gmail.com>
Date: Sun, 9 Jan 2011 23:26:48 -0500
Subject: [PATCH] Add check for invalid sample_rate in electronic arts decoder

---
 libavformat/electronicarts.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c
index df517df..9697d11 100644
--- a/libavformat/electronicarts.c
+++ b/libavformat/electronicarts.c
@@ -202,7 +202,7 @@ static int process_audio_header_elements(AVFormatContext *s)
         return 0;
     }

-    if (ea->sample_rate == -1)
+    if (ea->sample_rate <= 0)
         ea->sample_rate = revision==3 ? 48000 : 22050;

     return 1;
@@ -237,6 +237,11 @@ static int process_audio_header_eacs(AVFormatContext *s)
         av_log (s, AV_LOG_ERROR, "unsupported stream type; audio compression_type=%i\n", compression_type);
     }

+    if (ea->sample_rate <= 0) {
+        av_log(s, AV_LOG_ERROR, "Unsupported sample rate: %d\n", ea->sample_rate);
+        return AVERROR(EINVAL);
+    }
+
     return 1;
 }

@@ -254,6 +259,11 @@ static int process_audio_header_sead(AVFormatContext *s)
     ea->num_channels = get_le32(pb);
     ea->audio_codec  = CODEC_ID_ADPCM_IMA_EA_SEAD;

+    if (ea->sample_rate <= 0) {
+        av_log(s, AV_LOG_ERROR, "Unsupported sample rate: %d\n", ea->sample_rate);
+        return AVERROR(EINVAL);
+    }
+
     return 1;
 }

--
1.7.2.2

