Merge "Fix for integer overflow in ixheaacd_cplx_synt_qmffilt" am: bf603c488f am: d836d24c78 am: 6772b2f2fc

Original change: https://android-review.googlesource.com/c/platform/external/libxaac/+/1425113

Change-Id: I99874c54ab797e24eb5fd0e52a3985f55eb03a8a
diff --git a/decoder/ixheaacd_basic_ops40.h b/decoder/ixheaacd_basic_ops40.h
index 06fbbb2..c8a308c 100644
--- a/decoder/ixheaacd_basic_ops40.h
+++ b/decoder/ixheaacd_basic_ops40.h
@@ -156,8 +156,8 @@
   return (result);
 }
 
-static PLATFORM_INLINE WORD32 mac32x16in32_shl_sat(WORD32 a, WORD32 b,
-                                                   WORD16 c) {
+static PLATFORM_INLINE WORD32 ixheaacd_mac32x16in32_shl_sat(WORD32 a, WORD32 b,
+                                                            WORD16 c) {
   return (ixheaacd_add32_sat(a, ixheaacd_mult32x16in32_shl_sat(b, c)));
 }
 
diff --git a/decoder/ixheaacd_qmf_dec.c b/decoder/ixheaacd_qmf_dec.c
index 8e8076e..022a631 100644
--- a/decoder/ixheaacd_qmf_dec.c
+++ b/decoder/ixheaacd_qmf_dec.c
@@ -666,10 +666,10 @@
 
     WORD32 re, im;
 
-    re = ixheaacd_mac32x16in32_shl(
+    re = ixheaacd_mac32x16in32_shl_sat(
         ixheaacd_mult32x16in32_shl(x_re, ixheaacd_cosine), x_im, ixheaacd_sine);
-    im = ixheaacd_sub32(ixheaacd_mult32x16in32_shl(x_im, ixheaacd_cosine),
-                        ixheaacd_mult32x16in32_shl(x_re, ixheaacd_sine));
+    im = ixheaacd_sub32_sat(ixheaacd_mult32x16in32_shl(x_im, ixheaacd_cosine),
+                            ixheaacd_mult32x16in32_shl(x_re, ixheaacd_sine));
 
     *p_xre++ = re;
     *p_xim++ = im;