diff options
Diffstat (limited to 'libFDK')
| -rw-r--r-- | libFDK/src/nlc_dec.cpp | 8 | 
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) { | 
