[subset] Fix memory leak in glyf subset.

Fixes fuzzer issue: https://oss-fuzz.com/testcase-detail/6525813890875392.
This commit is contained in:
Garret Rieger 2023-03-08 23:59:04 +00:00 committed by Behdad Esfahbod
parent 9286e12525
commit 28b05e1cb6
2 changed files with 9 additions and 0 deletions

View File

@ -98,11 +98,17 @@ struct glyf
hb_vector_t<unsigned> 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<glyf_impl::SubsetGlyph> 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<hb_variation_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)
{