summaryrefslogtreecommitdiff
path: root/pdf/pdf_cmap.c
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2012-08-05 20:01:04 +0200
committerSebastian Rasmussen <sebras@gmail.com>2012-08-06 14:03:10 +0200
commit697c3cfb34d0b6fe315fc4d303340275ab80c121 (patch)
treeefaa27a3c7a62f36434587a9bfa9ce17f68d50b1 /pdf/pdf_cmap.c
parent0fda4705b3194d2158f4dd3998981884cb3e8570 (diff)
downloadmupdf-697c3cfb34d0b6fe315fc4d303340275ab80c121.tar.xz
Fix comparison of cmap table length against maximum value
The cmap table length counts how many entries there are currently in the table. The table length was previously tested against USHRT_MAX which is 65535. However, the desired value to compare with was 65536 which would be the maximum number of entries allowed in a cmap table. All comparisons of the cmap table length are now using USHRT_MAX + 1.
Diffstat (limited to 'pdf/pdf_cmap.c')
-rw-r--r--pdf/pdf_cmap.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/pdf/pdf_cmap.c b/pdf/pdf_cmap.c
index cd0d6385..d6cb3103 100644
--- a/pdf/pdf_cmap.c
+++ b/pdf/pdf_cmap.c
@@ -184,7 +184,7 @@ pdf_add_codespace(fz_context *ctx, pdf_cmap *cmap, int low, int high, int n)
static void
add_table(fz_context *ctx, pdf_cmap *cmap, int value)
{
- if (cmap->tlen == USHRT_MAX)
+ if (cmap->tlen >= USHRT_MAX + 1)
{
fz_warn(ctx, "cmap table is full; ignoring additional entries");
return;
@@ -233,7 +233,7 @@ pdf_map_range_to_table(fz_context *ctx, pdf_cmap *cmap, int low, int *table, int
int i;
int high = low + len;
int offset = cmap->tlen;
- if (cmap->tlen + len >= USHRT_MAX)
+ if (cmap->tlen + len >= USHRT_MAX + 1)
fz_warn(ctx, "cannot map range to table; table is full");
else
{
@@ -280,7 +280,7 @@ pdf_map_one_to_many(fz_context *ctx, pdf_cmap *cmap, int low, int *values, int l
return;
}
- if (cmap->tlen + len + 1 >= USHRT_MAX)
+ if (cmap->tlen + len + 1 >= USHRT_MAX + 1)
fz_warn(ctx, "cannot map one to many; table is full");
else
{
@@ -314,7 +314,7 @@ pdf_sort_cmap(fz_context *ctx, pdf_cmap *cmap)
qsort(cmap->ranges, cmap->rlen, sizeof(pdf_range), cmprange);
- if (cmap->tlen == USHRT_MAX)
+ if (cmap->tlen >= USHRT_MAX + 1)
{
fz_warn(ctx, "cmap table is full; will not combine ranges");
return;