]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Avoid out-of-boundary read in btrie
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 25 Sep 2019 12:59:19 +0000 (13:59 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 25 Sep 2019 12:59:19 +0000 (13:59 +0100)
Submitted by: @citrin

contrib/lc-btrie/btrie.c

index b1c66f1c398ca1993728632e2572ae75a628721d..8b598b09bb12736017edfb377b383451d996c2ee 100644 (file)
@@ -658,7 +658,8 @@ static inline int prefixes_equal(const btrie_oct_t *pfx1,
                const btrie_oct_t *pfx2, unsigned len)
 {
        return (memcmp (pfx1, pfx2, len / 8) == 0
-                       && ((pfx1[len / 8] ^ pfx2[len / 8]) & high_bits (len % 8)) == 0);
+                       && (len % 8 == 0 ||
+                       ((pfx1[len / 8] ^ pfx2[len / 8]) & high_bits (len % 8)) == 0));
 }
 
 /* determine length of longest common subprefix */