diff --git a/src/hb-subset-plan.cc b/src/hb-subset-plan.cc index ee8136797..76e127bd7 100644 --- a/src/hb-subset-plan.cc +++ b/src/hb-subset-plan.cc @@ -386,11 +386,12 @@ _collect_layout_variation_indices (hb_subset_plan_t* plan) if (collect_delta) { if (unlikely (!plan->check_success (font = _get_hb_font_with_variations (plan)))) { + hb_font_destroy (font); gdef.destroy (); gpos.destroy (); return; } - + if (gdef->has_var_store ()) { var_store = &(gdef->get_var_store ()); diff --git a/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6169920089227264 b/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6169920089227264 new file mode 100644 index 000000000..56dc798bf Binary files /dev/null and b/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-6169920089227264 differ