[HarfBuzz] harfbuzz: Branch 'master' - 3 commits
Behdad Esfahbod
behdad at kemper.freedesktop.org
Fri Nov 23 02:31:06 UTC 2018
src/hb-ot-layout-gsub-table.hh | 5 +++-
src/hb-set.hh | 12 +++++-----
test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5067936541179904 |binary
3 files changed, 10 insertions(+), 7 deletions(-)
New commits:
commit a9e0bdc35dfcbead7d4b6fa249d60ebedd7d43ca
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Thu Nov 22 21:30:04 2018 -0500
[GSUB] Don't flush glyphset during recursion in closure()
See comment.
Supercedes https://github.com/harfbuzz/harfbuzz/pull/1401
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11366
diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh
index 715317b5..501f2308 100644
--- a/src/hb-ot-layout-gsub-table.hh
+++ b/src/hb-ot-layout-gsub-table.hh
@@ -1449,7 +1449,10 @@ struct SubstLookup : Lookup
hb_closure_context_t::return_t ret = dispatch_recurse_func (c, lookup_index);
- c->flush ();
+ /* While in theory we should flush here, it will cause timeouts because a recursive
+ * lookup can keep growing the glyph set. Skip, and outer loop will retry up to
+ * HB_CLOSURE_MAX_STAGES time, which should be enough for every realistic font. */
+ //c->flush ();
return ret;
}
commit 8982830d3ec54f50cc951de9569520fafc735e75
Author: Garret Rieger <grieger at google.com>
Date: Mon Nov 19 13:00:24 2018 -0800
[subset] add fuzzer testcase.
diff --git a/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5067936541179904 b/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5067936541179904
new file mode 100644
index 00000000..9f57f7be
Binary files /dev/null and b/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5067936541179904 differ
commit d0e81b2cc85d09d01905c5fc5b3382c25eaa3bb3
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Thu Nov 22 21:20:39 2018 -0500
[set] Rename
diff --git a/src/hb-set.hh b/src/hb-set.hh
index bc26ed3c..cc061a7c 100644
--- a/src/hb-set.hh
+++ b/src/hb-set.hh
@@ -341,11 +341,11 @@ struct hb_set_t
{
/* TODO perform op even if !successful. */
if (unlikely (!successful)) return;
- page_t *p = page_for (g);
- if (!p)
+ page_t *page = page_for (g);
+ if (!page)
return;
dirty ();
- p->del (g);
+ page->del (g);
}
inline void del_range (hb_codepoint_t a, hb_codepoint_t b)
{
@@ -357,10 +357,10 @@ struct hb_set_t
}
inline bool has (hb_codepoint_t g) const
{
- const page_t *p = page_for (g);
- if (!p)
+ const page_t *page = page_for (g);
+ if (!page)
return false;
- return p->has (g);
+ return page->has (g);
}
inline bool intersects (hb_codepoint_t first,
hb_codepoint_t last) const
More information about the HarfBuzz
mailing list