[GDEF] Don't assume glyphlist is sorted

As was hit by the fuzzer.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14032
This commit is contained in:
Behdad Esfahbod 2019-04-03 16:06:55 -07:00
parent ecabdffc61
commit 85adf4ad5c
1 changed files with 4 additions and 4 deletions

View File

@ -1218,8 +1218,8 @@ struct ClassDefFormat1
return_trace (true);
}
hb_codepoint_t glyph_min = glyphs[0];
hb_codepoint_t glyph_max = glyphs[glyphs.length - 1];
hb_codepoint_t glyph_min = hb_iter (glyphs) | hb_reduce (hb_min, 0xFFFFu);
hb_codepoint_t glyph_max = hb_iter (glyphs) | hb_reduce (hb_max, 0u);
startGlyph = glyph_min;
classValue.len = glyph_max - glyph_min + 1;
@ -1510,8 +1510,8 @@ struct ClassDef
unsigned int format = 2;
if (likely (glyphs))
{
hb_codepoint_t glyph_min = glyphs[0];
hb_codepoint_t glyph_max = glyphs[glyphs.length - 1];
hb_codepoint_t glyph_min = +glyphs | hb_reduce (hb_min, 0xFFFFu);
hb_codepoint_t glyph_max = +glyphs | hb_reduce (hb_max, 0u);
unsigned int count = glyphs.len ();
unsigned int num_ranges = 1;