Module: libav
Branch: release/12
Commit: ec638edebf70635d0230acc903c73fe21ce469dd

Author:    Luca Barbato <[email protected]>
Committer: Sean McGovern <[email protected]>
Date:      Sat Feb 11 15:40:20 2017 +0100

aac: Validate the sbr sample rate before using the value

Avoid a floating point exception.

Bug-Id: 1027
(cherry picked from commit ba30b74686f0cb6c9dd465ac4820059c48bf9d08)
Signed-off-by: Sean McGovern <[email protected]>

---

 libavcodec/aacsbr.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/libavcodec/aacsbr.c b/libavcodec/aacsbr.c
index fc08079..99f7b08 100644
--- a/libavcodec/aacsbr.c
+++ b/libavcodec/aacsbr.c
@@ -327,16 +327,6 @@ static int sbr_make_f_master(AACContext *ac, 
SpectralBandReplication *sbr,
     const int8_t *sbr_offset_ptr;
     int16_t stop_dk[13];
 
-    if (sbr->sample_rate < 32000) {
-        temp = 3000;
-    } else if (sbr->sample_rate < 64000) {
-        temp = 4000;
-    } else
-        temp = 5000;
-
-    start_min = ((temp << 7) + (sbr->sample_rate >> 1)) / sbr->sample_rate;
-    stop_min  = ((temp << 8) + (sbr->sample_rate >> 1)) / sbr->sample_rate;
-
     switch (sbr->sample_rate) {
     case 16000:
         sbr_offset_ptr = sbr_offset[0];
@@ -362,6 +352,16 @@ static int sbr_make_f_master(AACContext *ac, 
SpectralBandReplication *sbr,
         return -1;
     }
 
+    if (sbr->sample_rate < 32000) {
+        temp = 3000;
+    } else if (sbr->sample_rate < 64000) {
+        temp = 4000;
+    } else
+        temp = 5000;
+
+    start_min = ((temp << 7) + (sbr->sample_rate >> 1)) / sbr->sample_rate;
+    stop_min  = ((temp << 8) + (sbr->sample_rate >> 1)) / sbr->sample_rate;
+
     sbr->k[0] = start_min + sbr_offset_ptr[spectrum->bs_start_freq];
 
     if (spectrum->bs_stop_freq < 14) {

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to