summaryrefslogtreecommitdiff
path: root/src/cairo-lzw.c
diff options
context:
space:
mode:
authorDaniel Hammerschmid <daniel.hammerschmid@documatrix.com>2022-12-28 10:16:49 +0100
committerDaniel Hammerschmid <daniel.hammerschmid@documatrix.com>2022-12-28 10:16:49 +0100
commitbd15b629060a0bba6d6f101aca1d590292018e28 (patch)
tree7cc02808ba798bbcdbe6793c9c5c015678fbac98 /src/cairo-lzw.c
parent9b2e6f19942ab5e9bdfd11963f2a80bfef1ab55c (diff)
downloadcairo-bd15b629060a0bba6d6f101aca1d590292018e28.tar.gz
Fixed crash in _cairo_lzw_compress for 1 byte input
Diffstat (limited to 'src/cairo-lzw.c')
-rw-r--r--src/cairo-lzw.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/cairo-lzw.c b/src/cairo-lzw.c
index 58e229d79..e17cdfc1c 100644
--- a/src/cairo-lzw.c
+++ b/src/cairo-lzw.c
@@ -369,7 +369,10 @@ _cairo_lzw_compress (unsigned char *data, unsigned long *size_in_out)
* lookup. */
_lzw_buf_store_bits (&buf, prev, code_bits);
- LZW_SYMBOL_SET_CODE (*slot, code_next++, prev, next);
+ if (likely (slot != NULL))
+ LZW_SYMBOL_SET_CODE (*slot, code_next, prev, next);
+
+ code_next++;
if (code_next > LZW_BITS_BOUNDARY(code_bits))
{