summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2011-02-03 09:04:53 +0000
committerTor Andersson <tor@ghostscript.com>2011-02-03 09:04:53 +0000
commita89f9abbc6bf0e0836f50324ea94d340c61acf95 (patch)
tree2b8882dbe5839b5df577621c1888f35b6a4c62e9
parenta612300ea5325e59c4c22b0fda9fbdca746fde17 (diff)
downloadmupdf-a89f9abbc6bf0e0836f50324ea94d340c61acf95.tar.xz
Use calloc to allocate pixmap data. Limit size of PDF images to 65k x 65k.
-rw-r--r--fitz/res_pixmap.c2
-rw-r--r--mupdf/pdf_image.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/fitz/res_pixmap.c b/fitz/res_pixmap.c
index 86828c0c..88e10230 100644
--- a/fitz/res_pixmap.c
+++ b/fitz/res_pixmap.c
@@ -28,7 +28,7 @@ fz_newpixmapwithdata(fz_colorspace *colorspace, int x, int y, int w, int h, unsi
}
else
{
- pix->samples = fz_malloc(pix->w * pix->h * pix->n);
+ pix->samples = fz_calloc(pix->h, pix->w * pix->n);
pix->freesamples = 1;
}
diff --git a/mupdf/pdf_image.c b/mupdf/pdf_image.c
index 578ba4a1..b5c7ec68 100644
--- a/mupdf/pdf_image.c
+++ b/mupdf/pdf_image.c
@@ -66,6 +66,10 @@ pdf_loadimageimp(fz_pixmap **imgp, pdf_xref *xref, fz_obj *rdb, fz_obj *dict, fz
return fz_throw("image height is zero");
if (bpc == 0)
return fz_throw("image depth is zero");
+ if (w > (1 << 16))
+ return fz_throw("image is too wide");
+ if (h > (1 << 16))
+ return fz_throw("image is too high");
obj = fz_dictgetsa(dict, "ColorSpace", "CS");
if (obj && !imagemask && !forcemask)