AAC encoder: fix OOB access in search_for_pns
authorClaudio Freire <klaussfreire@gmail.com>
Wed, 9 Dec 2015 20:36:32 +0000 (17:36 -0300)
committerAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Wed, 9 Dec 2015 21:29:18 +0000 (22:29 +0100)
Fix OOB access in search_for_pns which was using
w2 outside the window group loop, and fix a typo
in which it was checking sf_idx instead of band_type

Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
libavcodec/aaccoder.c

index 14862ec..7e55494 100644 (file)
@@ -711,7 +711,7 @@ static void search_for_pns(AACEncContext *s, AVCodecContext *avctx, SingleChanne
                 /* Estimate rd on average as 5 bits for SF, 4 for the CB, plus spread energy * lambda/thr */
                 dist2 += band->energy/(band->spread*band->spread)*lambda*dist_thresh/band->threshold;
             }
-            if (g && sce->sf_idx[(w+w2)*16+g-1] == NOISE_BT) {
+            if (g && sce->band_type[w*16+g-1] == NOISE_BT) {
                 dist2 += 5;
             } else {
                 dist2 += 9;