summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pdf/pdf_function.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/pdf/pdf_function.c b/pdf/pdf_function.c
index 9d0aabd5..5eea4125 100644
--- a/pdf/pdf_function.c
+++ b/pdf/pdf_function.c
@@ -929,8 +929,10 @@ load_sample_func(pdf_function *func, pdf_document *xref, pdf_obj *dict, int num,
func->u.sa.samples = NULL;
obj = pdf_dict_gets(dict, "Size");
- if (!pdf_is_array(obj) || pdf_array_len(obj) != func->m)
- fz_throw(ctx, "malformed /Size");
+ if (pdf_array_len(obj) < func->m)
+ fz_throw(ctx, "too few sample function dimension sizes");
+ if (pdf_array_len(obj) > func->m)
+ fz_warn(ctx, "too many sample function dimension sizes");
for (i = 0; i < func->m; i++)
func->u.sa.size[i] = pdf_to_int(pdf_array_get(obj, i));
@@ -994,7 +996,7 @@ load_sample_func(pdf_function *func, pdf_document *xref, pdf_obj *dict, int num,
if (fz_is_eof_bits(stream))
{
fz_close(stream);
- fz_throw(ctx, "truncated sample stream");
+ fz_throw(ctx, "truncated sample function stream");
}
switch (bps)