35 lines
1.1 KiB
Diff
35 lines
1.1 KiB
Diff
|
From f19e2fe080ddcfce93c8234a919fd882f3d63362 Mon Sep 17 00:00:00 2001
|
||
|
From: Adrian Johnson <ajohnson@redneon.com>
|
||
|
Date: Fri, 13 Sep 2024 06:28:39 +0930
|
||
|
Subject: [PATCH] cff: Don't fail if no local subs
|
||
|
|
||
|
Fixes: #870
|
||
|
---
|
||
|
src/cairo-cff-subset.c | 10 +++++++---
|
||
|
1 file 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;
|
||
|
--
|
||
|
GitLab
|
||
|
|