aboutsummaryrefslogtreecommitdiffstats
path: root/libFDK/src/nlc_dec.cpp
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2019-01-21 15:54:25 +0200
committerMartin Storsjo <martin@martin.st>2019-01-21 15:54:25 +0200
commit02103fd6308a40c58013d8ec8610ad8a71075aca (patch)
tree77e30d296d5cec1f24b5c0e03b49f197d5bf080e /libFDK/src/nlc_dec.cpp
parent2326faaf8f2cdf2c3a9108ccdaf1d7551aec543e (diff)
parented56e77acb1ca4524bf49d9cdec7d11a51f5134d (diff)
downloadfdk-aac-02103fd6308a40c58013d8ec8610ad8a71075aca.tar.gz
fdk-aac-02103fd6308a40c58013d8ec8610ad8a71075aca.tar.bz2
fdk-aac-02103fd6308a40c58013d8ec8610ad8a71075aca.zip
Merge remote-tracking branch 'aosp/master'
Diffstat (limited to 'libFDK/src/nlc_dec.cpp')
-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) {