summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Drake <michael.drake@codethink.co.uk>2021-03-29 11:32:39 +0100
committerMichael Drake <michael.drake@codethink.co.uk>2021-03-29 11:32:39 +0100
commit815676f00a4cb3c470970ea7b4cac3452b7f9d88 (patch)
treea820eea790707e2efd88390abacf2e72864095a0 /src
parent1764ddb0017da494a7d7519802404d3fdd011c9a (diff)
downloadlibnsgif-815676f00a4cb3c470970ea7b4cac3452b7f9d88.tar.gz
libnsgif-815676f00a4cb3c470970ea7b4cac3452b7f9d88.tar.bz2
lzw: Reject bad LZW Minimum Code Size.
The libnsgif.c code was checking this incorrectly, so safest to check it in the lzw.c code.
Diffstat (limited to 'src')
-rw-r--r--src/lzw.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lzw.c b/src/lzw.c
index 50d1d22..1f85496 100644
--- a/src/lzw.c
+++ b/src/lzw.c
@@ -272,6 +272,10 @@ lzw_result lzw_decode_init(
{
struct lzw_dictionary_entry *table = ctx->table;
+ if (code_size >= LZW_CODE_MAX) {
+ return LZW_BAD_ICODE;
+ }
+
/* Initialise the input reading context */
ctx->input.data = compressed_data;
ctx->input.data_len = compressed_data_len;