Gitweb links: ...log http://git.netsurf-browser.org/libnsgif.git/shortlog/f9b8f113aa8a51ef4a704c129a7e939800efdbc5 ...commit http://git.netsurf-browser.org/libnsgif.git/commit/f9b8f113aa8a51ef4a704c129a7e939800efdbc5 ...tree http://git.netsurf-browser.org/libnsgif.git/tree/f9b8f113aa8a51ef4a704c129a7e939800efdbc5
The branch, master has been updated via f9b8f113aa8a51ef4a704c129a7e939800efdbc5 (commit) from 0aeb0afe342d035ab32bac1d89b185f25d7acf32 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commitdiff http://git.netsurf-browser.org/libnsgif.git/commit/?id=f9b8f113aa8a51ef4a704c129a7e939800efdbc5 commit f9b8f113aa8a51ef4a704c129a7e939800efdbc5 Author: Michael Drake <t...@netsurf-browser.org> Commit: Michael Drake <t...@netsurf-browser.org> lzw: Detect invalid code after clear code. diff --git a/src/lzw.c b/src/lzw.c index 4b521b6..dd30d01 100644 --- a/src/lzw.c +++ b/src/lzw.c @@ -347,8 +347,12 @@ static inline lzw_result lzw__decode(struct lzw_ctx *ctx, } else if (code == ctx->clear_code) { lzw__clear_table(ctx); } else { - if (ctx->prev_code != ctx->clear_code && - ctx->table_size < LZW_TABLE_ENTRY_MAX) { + if (ctx->prev_code == ctx->clear_code) { + if (code > ctx->clear_code) { + return LZW_BAD_ICODE; + } + + } else if (ctx->table_size < LZW_TABLE_ENTRY_MAX) { uint32_t size = ctx->table_size; lzw__table_add_entry(ctx, (code < size) ? ctx->table[code].first : ----------------------------------------------------------------------- Summary of changes: src/lzw.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lzw.c b/src/lzw.c index 4b521b6..dd30d01 100644 --- a/src/lzw.c +++ b/src/lzw.c @@ -347,8 +347,12 @@ static inline lzw_result lzw__decode(struct lzw_ctx *ctx, } else if (code == ctx->clear_code) { lzw__clear_table(ctx); } else { - if (ctx->prev_code != ctx->clear_code && - ctx->table_size < LZW_TABLE_ENTRY_MAX) { + if (ctx->prev_code == ctx->clear_code) { + if (code > ctx->clear_code) { + return LZW_BAD_ICODE; + } + + } else if (ctx->table_size < LZW_TABLE_ENTRY_MAX) { uint32_t size = ctx->table_size; lzw__table_add_entry(ctx, (code < size) ? ctx->table[code].first : -- NetSurf GIF Decoder _______________________________________________ netsurf-commits mailing list -- netsurf-commits@netsurf-browser.org To unsubscribe send an email to netsurf-commits-le...@netsurf-browser.org