From 255df6801201fb22402420f7b7b7ea8b042df8ba Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 7 Dec 2015 10:34:47 +0100 Subject: [PATCH] Fix undefined behavior in cmp function Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93274 --- src/hb-ot-map-private.hh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hb-ot-map-private.hh b/src/hb-ot-map-private.hh index 6f62c77de..8692caa93 100644 --- a/src/hb-ot-map-private.hh +++ b/src/hb-ot-map-private.hh @@ -203,7 +203,8 @@ struct hb_ot_map_builder_t unsigned int stage[2]; /* GSUB/GPOS */ static int cmp (const feature_info_t *a, const feature_info_t *b) - { return (a->tag != b->tag) ? (a->tag < b->tag ? -1 : 1) : (a->seq < b->seq ? -1 : 1); } + { return (a->tag != b->tag) ? (a->tag < b->tag ? -1 : 1) : + (a->seq < b->seq ? -1 : a->seq > b->seq ? 1 : 0); } }; struct stage_info_t {