diff --git a/src/hb-ot-glyf-table.hh b/src/hb-ot-glyf-table.hh index 7b9206c37..a5dd9d680 100644 --- a/src/hb-ot-glyf-table.hh +++ b/src/hb-ot-glyf-table.hh @@ -847,6 +847,7 @@ struct glyf glyf_table = hb_sanitize_context_t ().reference_table (face); num_glyphs = hb_max (1u, loca_table.get_length () / (short_offset ? 2 : 4)) - 1; + num_glyphs = hb_min (num_glyphs, face->get_num_glyphs ()); } void fini () diff --git a/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-draw-fuzzer-5668491560747008 b/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-draw-fuzzer-5668491560747008 new file mode 100644 index 000000000..cf9814a13 Binary files /dev/null and b/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-draw-fuzzer-5668491560747008 differ