aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2017-10-30 15:20:44 -0700
committerJean-Michel Trivi <jmtrivi@google.com>2017-10-30 15:20:44 -0700
commitd0e8397b7b621fdc35ae91ffc7ce7847bf3ce1e7 (patch)
tree7f95a410a1d378b4216ec6ec3eb6eb59690db2c4
parent7147e71a75a48009e6d2b835422767cf466813d8 (diff)
downloadfdk-aac-d0e8397b7b621fdc35ae91ffc7ce7847bf3ce1e7.tar.gz
fdk-aac-d0e8397b7b621fdc35ae91ffc7ce7847bf3ce1e7.tar.bz2
fdk-aac-d0e8397b7b621fdc35ae91ffc7ce7847bf3ce1e7.zip
DO NOT MERGE Prevent out of bound memory access in GetInvInt
In GetInvInt(int) function, malicious content can access memory outside of the invCount array. Always bound access to valid indices. Test: see bug for malicious content, decoded with "stagefright -s -a" Bug: 65025048 Change-Id: Iff889601828f95b82d9291075f3909922ef533ef
-rw-r--r--libFDK/include/fixpoint_math.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/libFDK/include/fixpoint_math.h b/libFDK/include/fixpoint_math.h
index df141d3..26c001f 100644
--- a/libFDK/include/fixpoint_math.h
+++ b/libFDK/include/fixpoint_math.h
@@ -450,15 +450,19 @@ inline FIXP_DBL fAddSaturate(const FIXP_DBL a, const FIXP_DBL b)
/**
* \brief Calculate the value of 1/i where i is a integer value. It supports
- * input values from 1 upto 50.
+ * input values from 0 upto 49.
* \param intValue Integer input value.
* \param FIXP_DBL representation of 1/intValue
*/
inline FIXP_DBL GetInvInt(int intValue)
{
- FDK_ASSERT((intValue > 0) && (intValue < 50));
- FDK_ASSERT(intValue<50);
- return invCount[intValue];
+ FDK_ASSERT((intValue >= 0) && (intValue < 50));
+ if (intValue < 0)
+ return invCount[0];
+ else if (intValue > 49)
+ return invCount[49];
+ else
+ return invCount[intValue];
}