From: Philippe Antoine Date: Thu, 24 Oct 2019 12:41:21 +0000 (+0200) Subject: util: UTHmemsearch to use memmem if defined X-Git-Tag: suricata-6.0.0-beta1~749 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5190da67edda7f04626ceb35d1a2d86b638f480;p=thirdparty%2Fsuricata.git util: UTHmemsearch to use memmem if defined --- diff --git a/configure.ac b/configure.ac index 3b9b6f353f..f203fd793e 100644 --- a/configure.ac +++ b/configure.ac @@ -238,6 +238,9 @@ #include ]) + AC_CHECK_FUNC([memmem], + AC_DEFINE([HAVE_MEMMEM], [1], [Use memmem]), []) + AC_CHECK_FUNCS([utime]) OCFLAGS=$CFLAGS diff --git a/qa/coccinelle/banned-functions.cocci b/qa/coccinelle/banned-functions.cocci index c3d83590a6..c55bdf0f43 100644 --- a/qa/coccinelle/banned-functions.cocci +++ b/qa/coccinelle/banned-functions.cocci @@ -3,7 +3,7 @@ identifier i; position p1; @@ -\(strtok@i\|sprintf@i\|strcat@i\|strcpy@i\|strncpy@i\|strncat@i\|strchrnul@i\|rand@i\|rand_r@i\|memmem@i\|index@i\|rindex@i\|bzero@i\)(...)@p1 +\(strtok@i\|sprintf@i\|strcat@i\|strcpy@i\|strncpy@i\|strncat@i\|strchrnul@i\|rand@i\|rand_r@i\|index@i\|rindex@i\|bzero@i\)(...)@p1 @script:python@ p1 << banned.p1; diff --git a/src/util-unittest-helper.c b/src/util-unittest-helper.c index ea04be27c2..a76ee804d9 100644 --- a/src/util-unittest-helper.c +++ b/src/util-unittest-helper.c @@ -995,6 +995,18 @@ static int CheckUTHTestPacket(Packet *p, uint8_t ipproto) return 1; } +#ifdef HAVE_MEMMEM +#include +void * UTHmemsearch(const void *big, size_t big_len, const void *little, size_t little_len) { + return memmem(big, big_len, little, little_len); +} +#else +#include "util-spm-bs.h" +void * UTHmemsearch(const void *big, size_t big_len, const void *little, size_t little_len) { + return BasicSearch(big, big_len, little, little_len); +} +#endif //HAVE_MEMMEM + /** * \brief UTHBuildPacketRealTest01 wrapper to check packets for unittests */ diff --git a/src/util-unittest-helper.h b/src/util-unittest-helper.h index 8ce2a4653a..d0a0972711 100644 --- a/src/util-unittest-helper.h +++ b/src/util-unittest-helper.h @@ -61,6 +61,7 @@ uint32_t UTHBuildPacketOfFlows(uint32_t, uint32_t, uint8_t); Packet *UTHBuildPacketIPV6Real(uint8_t *, uint16_t , uint8_t ipproto, const char *, const char *, uint16_t , uint16_t ); +void * UTHmemsearch(const void *big, size_t big_len, const void *little, size_t little_len); int UTHParseSignature(const char *str, bool expect); #endif