From 534e1d7694c96f61e853daef481b41274d5d16d8 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sat, 10 Nov 2018 15:43:16 -0500 Subject: [PATCH] Fix hb_bytes_t.cmp() for realz this time --- src/hb-dsalgs.hh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/hb-dsalgs.hh b/src/hb-dsalgs.hh index e98566e75..511b2299a 100644 --- a/src/hb-dsalgs.hh +++ b/src/hb-dsalgs.hh @@ -530,10 +530,12 @@ struct hb_bytes_t inline int cmp (const hb_bytes_t &a) const { - if (!len) return 0; /* glibc's memcmp() args are declared nonnull. Meh. */ - - int r = memcmp (a.arrayZ, arrayZ, len); - if (r) return r; + unsigned int l = MIN(a.len, len); + if (l) /* glibc's memcmp() args are declared nonnull. Meh. */ + { + int r = memcmp (a.arrayZ, arrayZ, l); + if (r) return r; + } return a.len < len ? -1 : a.len > len ? +1 : 0; }