From e1d2edc18d76259dd70209fecb8bdab4700918e8 Mon Sep 17 00:00:00 2001 From: Robin Watts Date: Fri, 30 Nov 2012 11:59:48 +0000 Subject: Bug 693290: PDF cmap range warnings Thanks to zeniko for these. --- pdf/pdf_cmap.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'pdf') diff --git a/pdf/pdf_cmap.c b/pdf/pdf_cmap.c index 67626b31..0b5e4645 100644 --- a/pdf/pdf_cmap.c +++ b/pdf/pdf_cmap.c @@ -204,6 +204,12 @@ add_table(fz_context *ctx, pdf_cmap *cmap, int value) static void add_range(fz_context *ctx, pdf_cmap *cmap, int low, int high, int flag, int offset) { + /* Sanity check ranges */ + if (low < 0 || low > 65535 || high < 0 || high > 65535 || low > high) + { + fz_warn(ctx, "range limits out of range in cmap %s", cmap->cmap_name); + return; + } /* If the range is too large to be represented, split it */ if (high - low > 0x3fff) { @@ -276,7 +282,7 @@ pdf_map_one_to_many(fz_context *ctx, pdf_cmap *cmap, int low, int *values, int l values[0] >= 0xD800 && values[0] <= 0xDBFF && values[1] >= 0xDC00 && values[1] <= 0xDFFF) { - fz_warn(ctx, "ignoring surrogate pair mapping in cmap"); + fz_warn(ctx, "ignoring surrogate pair mapping in cmap %s", cmap->cmap_name); return; } -- cgit v1.2.3