diff options
author | Sebastian Rasmussen <sebras@gmail.com> | 2016-03-28 13:42:26 +0200 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2016-03-29 13:06:27 +0100 |
commit | 60f842b8573dd4a4bbc817acaa336b63b98ee3c8 (patch) | |
tree | 110085b32e8719158075fa4beb78b172f7212556 /source/fitz | |
parent | f4d9ffc3899454cdac606434da17539d3ad2bca1 (diff) | |
download | mupdf-60f842b8573dd4a4bbc817acaa336b63b98ee3c8.tar.xz |
bmp: Only allow in range bitcounts for uncompressed images.
Diffstat (limited to 'source/fitz')
-rw-r--r-- | source/fitz/load-bmp.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/source/fitz/load-bmp.c b/source/fitz/load-bmp.c index 0c9022ec..5582d276 100644 --- a/source/fitz/load-bmp.c +++ b/source/fitz/load-bmp.c @@ -679,15 +679,14 @@ bmp_read_image(fz_context *ctx, struct info *info, unsigned char *p, int total, if (info->width <= 0 || info->width > SHRT_MAX || info->height <= 0 || info->height > SHRT_MAX) fz_throw(ctx, FZ_ERROR_GENERIC, "dimensions (%d x %d) out of range in bmp image", info->width, info->height); - if (info->bitcount != 1 && info->bitcount != 2 && - info->bitcount != 4 && info->bitcount != 8 && - info->bitcount != 16 && info->bitcount != 24 && - info->bitcount != 32) - fz_throw(ctx, FZ_ERROR_GENERIC, "unsupported bits per pixel (%d) in bmp image", info->bitcount); if (info->compression != BI_RGB && info->compression != BI_RLE8 && info->compression != BI_RLE4 && info->compression != BI_BITFIELDS) fz_throw(ctx, FZ_ERROR_GENERIC, "unsupported compression method (%d) in bmp image", info->compression); - if ((info->compression == BI_RLE8 && info->bitcount != 8) || + if ((info->compression == BI_RGB && info->bitcount != 1 && + info->bitcount != 2 && info->bitcount != 4 && + info->bitcount != 8 && info->bitcount != 16 && + info->bitcount != 24 && info->bitcount != 32) || + (info->compression == BI_RLE8 && info->bitcount != 8) || (info->compression == BI_RLE4 && info->bitcount != 4) || (info->compression == BI_BITFIELDS && info->bitcount != 16 && info->bitcount != 32)) fz_throw(ctx, FZ_ERROR_GENERIC, "invalid bits per pixel (%d) for compression (%d) in bmp image", |