From 2fe5f885b6f66f2665292b93e07baaae0aa46da8 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Tue, 19 Dec 2017 14:48:26 -0500 Subject: [PATCH] [set] Handle nil set in add_range() / add_sorted_array() Fixes https://github.com/harfbuzz/harfbuzz/issues/657 --- src/hb-set-private.hh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/hb-set-private.hh b/src/hb-set-private.hh index 4715e1f36..9c6f3ee37 100644 --- a/src/hb-set-private.hh +++ b/src/hb-set-private.hh @@ -230,7 +230,8 @@ struct hb_set_t } inline bool add_range (hb_codepoint_t a, hb_codepoint_t b) { - if (unlikely (in_error || a > b || a == INVALID || b == INVALID)) return false; + if (unlikely (in_error)) return true; /* https://github.com/harfbuzz/harfbuzz/issues/657 */ + if (unlikely (a > b || a == INVALID || b == INVALID)) return false; unsigned int ma = get_major (a); unsigned int mb = get_major (b); if (ma == mb) @@ -283,7 +284,7 @@ struct hb_set_t template inline bool add_sorted_array (const T *array, unsigned int count, unsigned int stride=sizeof(T)) { - if (unlikely (in_error)) return false; + if (unlikely (in_error)) return true; /* https://github.com/harfbuzz/harfbuzz/issues/657 */ if (!count) return true; hb_codepoint_t g = *array; hb_codepoint_t last_g = g;