aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2019-01-02 12:54:17 -0800
committerandroid-build-merger <android-build-merger@google.com>2019-01-02 12:54:17 -0800
commite656165e17bdfb3a7b0d3f526dd297a6fc0a8e54 (patch)
tree5f3d86d57a282c3520d4ef1b6a9d840eb9afc3cf
parent37492f80b12192ef4d0063b623a5c70c8359b69c (diff)
parent04b22fae53c04876b3071804c3afdbd8ad4b7f64 (diff)
downloadfdk-aac-e656165e17bdfb3a7b0d3f526dd297a6fc0a8e54.tar.gz
fdk-aac-e656165e17bdfb3a7b0d3f526dd297a6fc0a8e54.tar.bz2
fdk-aac-e656165e17bdfb3a7b0d3f526dd297a6fc0a8e54.zip
Merge "Add sanity check in huff_decode()" am: 3942213f19 am: 8d06f35f31
am: 04b22fae53 Change-Id: Id8704b2df146ed63947f3a9c4680c01f38d8f1e4
-rw-r--r--libFDK/src/nlc_dec.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/libFDK/src/nlc_dec.cpp b/libFDK/src/nlc_dec.cpp
index 8a8ccfd..6e98ce0 100644
--- a/libFDK/src/nlc_dec.cpp
+++ b/libFDK/src/nlc_dec.cpp
@@ -647,6 +647,10 @@ static ERROR_t huff_decode(HANDLE_FDK_BITSTREAM strm, SCHAR* out_data_1,
}
df_rest_flag_1 = num_val_1_int % 2;
if (df_rest_flag_1) num_val_1_int -= 1;
+ if (num_val_1_int < 0) {
+ err = HUFFDEC_NOTOK;
+ goto bail;
+ }
}
if (out_data_2 != NULL) {
if (diff_type_2 == DIFF_FREQ) {
@@ -658,6 +662,10 @@ static ERROR_t huff_decode(HANDLE_FDK_BITSTREAM strm, SCHAR* out_data_1,
}
df_rest_flag_2 = num_val_2_int % 2;
if (df_rest_flag_2) num_val_2_int -= 1;
+ if (num_val_2_int < 0) {
+ err = HUFFDEC_NOTOK;
+ goto bail;
+ }
}
if (out_data_1 != NULL) {