From: Philippe Antoine Date: Mon, 3 Jun 2019 14:50:28 +0000 (+0200) Subject: boyermoore: avoid one tolower call X-Git-Tag: suricata-5.0.0-rc1~111 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aa73d834b598491fed149d0549fdba7f886134cf;p=thirdparty%2Fsuricata.git boyermoore: avoid one tolower call Fixes #1218 --- diff --git a/src/suricata.h b/src/suricata.h index 1b0e72a99e..ca3bdffb8d 100644 --- a/src/suricata.h +++ b/src/suricata.h @@ -178,6 +178,7 @@ extern uint16_t g_vlan_mask; #include #define u8_tolower(c) tolower((uint8_t)(c)) +#define u8_toupper(c) toupper((uint8_t)(c)) void EngineStop(void); void EngineDone(void); diff --git a/src/util-spm-bm.c b/src/util-spm-bm.c index 94dbcb82b1..a9772bb40e 100644 --- a/src/util-spm-bm.c +++ b/src/util-spm-bm.c @@ -221,6 +221,7 @@ static void PreBmBcNocase(const uint8_t *x, uint16_t m, uint16_t *bmBc) } for (i = 0; i < m - 1; ++i) { bmBc[u8_tolower((unsigned char)x[i])] = m - 1 - i; + bmBc[u8_toupper((unsigned char)x[i])] = m - 1 - i; } } @@ -372,7 +373,7 @@ uint8_t *BoyerMooreNocase(const uint8_t *x, uint16_t m, const uint8_t *y, uint32 if (i < 0) { return (uint8_t *)(y + j); } else { - j += (m1 = bmGs[i]) > (m2 = bmBc[u8_tolower(y[i + j])] - m + 1 + i)? + j += (m1 = bmGs[i]) > (m2 = bmBc[y[i + j]] - m + 1 + i)? m1: m2; } }