diff options
Diffstat (limited to 'source/fitz/stream-read.c')
-rw-r--r-- | source/fitz/stream-read.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/source/fitz/stream-read.c b/source/fitz/stream-read.c index 1a2bda01..9eff8722 100644 --- a/source/fitz/stream-read.c +++ b/source/fitz/stream-read.c @@ -59,6 +59,7 @@ fz_buffer * fz_read_best(fz_context *ctx, fz_stream *stm, size_t initial, int *truncated) { fz_buffer *buf = NULL; + int check_bomb = (initial > 0); size_t n; fz_var(buf); @@ -78,10 +79,8 @@ fz_read_best(fz_context *ctx, fz_stream *stm, size_t initial, int *truncated) if (buf->len == buf->cap) fz_grow_buffer(ctx, buf); - if (buf->len >= MIN_BOMB && buf->len / 200 > initial) - { + if (check_bomb && buf->len >= MIN_BOMB && buf->len / 200 > initial) fz_throw(ctx, FZ_ERROR_GENERIC, "compression bomb detected"); - } n = fz_read(ctx, stm, buf->data + buf->len, buf->cap - buf->len); if (n == 0) |