diff --git a/lib/lizard_decompress_liz.h b/lib/lizard_decompress_liz.h index d306a7c..5361559 100644 --- a/lib/lizard_decompress_liz.h +++ b/lib/lizard_decompress_liz.h @@ -203,7 +203,7 @@ FORCE_INLINE int Lizard_decompress_LIZv1( /* last literals */ length = ctx->literalsEnd - ctx->literalsPtr; cpy = op + length; - if ((ctx->literalsPtr+length != iend) || (cpy > oend)) { LIZARD_LOG_DECOMPRESS_LIZv1("14"); goto _output_error; } /* Error : input must be consumed */ + if ((length < 0) || (ctx->literalsPtr+length != iend) || (cpy > oend)) { LIZARD_LOG_DECOMPRESS_LIZv1("14"); goto _output_error; } /* Error : input must be consumed */ memcpy(op, ctx->literalsPtr, length); ctx->literalsPtr += length; op += length; diff --git a/lib/lizard_decompress_lz4.h b/lib/lizard_decompress_lz4.h index 74ad296..ffbef1c 100644 --- a/lib/lizard_decompress_lz4.h +++ b/lib/lizard_decompress_lz4.h @@ -147,7 +147,7 @@ FORCE_INLINE int Lizard_decompress_LZ4( /* last literals */ length = ctx->literalsEnd - ctx->literalsPtr; cpy = op + length; - if ((ctx->literalsPtr+length != iend) || (cpy > oend)) { LIZARD_LOG_DECOMPRESS_LZ4("9"); goto _output_error; } /* Error : input must be consumed */ + if ((length < 0) || (ctx->literalsPtr+length != iend) || (cpy > oend)) { LIZARD_LOG_DECOMPRESS_LZ4("9"); goto _output_error; } /* Error : input must be consumed */ memcpy(op, ctx->literalsPtr, length); ctx->literalsPtr += length; op += length;