From 28b05e1cb6116b07b95af799ff68b883c3f590d1 Mon Sep 17 00:00:00 2001 From: Garret Rieger Date: Wed, 8 Mar 2023 23:59:04 +0000 Subject: [PATCH] [subset] Fix memory leak in glyf subset. Fixes fuzzer issue: https://oss-fuzz.com/testcase-detail/6525813890875392. --- src/OT/glyf/glyf.hh | 9 +++++++++ ...-minimized-hb-subset-fuzzer-6525813890875392 | Bin 0 -> 73882 bytes 2 files changed, 9 insertions(+) create mode 100644 test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6525813890875392 diff --git a/src/OT/glyf/glyf.hh b/src/OT/glyf/glyf.hh index 541d5d1e2..bc5608d4f 100644 --- a/src/OT/glyf/glyf.hh +++ b/src/OT/glyf/glyf.hh @@ -98,11 +98,17 @@ struct glyf hb_vector_t padded_offsets; unsigned num_glyphs = c->plan->num_output_glyphs (); if (unlikely (!padded_offsets.resize (num_glyphs))) + { + hb_font_destroy (font); return false; + } hb_vector_t glyphs; if (!_populate_subset_glyphs (c->plan, font, glyphs)) + { + hb_font_destroy (font); return false; + } if (font) hb_font_destroy (font); @@ -464,7 +470,10 @@ glyf::_create_font_for_instancing (const hb_subset_plan_t *plan) const hb_vector_t vars; if (unlikely (!vars.alloc (plan->user_axes_location.get_population (), true))) + { + hb_font_destroy (font); return nullptr; + } for (auto _ : plan->user_axes_location) { diff --git a/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6525813890875392 b/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6525813890875392 new file mode 100644 index 0000000000000000000000000000000000000000..0ece6d74e67087de671aa04edfca15fc8bb0ee90 GIT binary patch literal 73882 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 p7aLR_2YWn;Jjd~HDYD(i!