summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cairo-cff-subset.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/cairo-cff-subset.c b/src/cairo-cff-subset.c
index 076cb2b0a..8a7de0065 100644
--- a/src/cairo-cff-subset.c
+++ b/src/cairo-cff-subset.c
@@ -952,9 +952,13 @@ cairo_cff_font_read_private_dict (cairo_cff_font_t *font,
decode_number (operand, nominal_width);
num_subs = _cairo_array_num_elements (local_sub_index);
- *local_subs_used = _cairo_calloc_ab (num_subs, sizeof (cairo_bool_t));
- if (unlikely (*local_subs_used == NULL))
- return _cairo_error (CAIRO_STATUS_NO_MEMORY);
+ if (num_subs > 0) {
+ *local_subs_used = _cairo_calloc_ab (num_subs, sizeof (cairo_bool_t));
+ if (unlikely (*local_subs_used == NULL))
+ return _cairo_error (CAIRO_STATUS_NO_MEMORY);
+ } else {
+ *local_subs_used = NULL;
+ }
if (num_subs < 1240)
*local_sub_bias = 107;