diff --git a/lib/misc/upng-gzip.c b/lib/misc/upng-gzip.c index a3449adb3..722fa3a06 100644 --- a/lib/misc/upng-gzip.c +++ b/lib/misc/upng-gzip.c @@ -586,7 +586,10 @@ _lws_upng_inflate_data(inflator_ctx_t *inf) return r; count = tu + 3; - if ((inf->i - 1) < inf->hlit) + if (!inf->i) /* from google fuzzer */ + return LWS_SRET_FATAL + 29; + + if (inf->i - 1 < inf->hlit) val = inf->bitlen[inf->i - 1]; else val = inf->bitlenD[inf->i - inf->hlit - 1];