]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
util: UTHmemsearch to use memmem if defined
authorPhilippe Antoine <contact@catenacyber.fr>
Thu, 24 Oct 2019 12:41:21 +0000 (14:41 +0200)
committerVictor Julien <victor@inliniac.net>
Fri, 14 Feb 2020 09:09:21 +0000 (10:09 +0100)
configure.ac
qa/coccinelle/banned-functions.cocci
src/util-unittest-helper.c
src/util-unittest-helper.h

index 3b9b6f353f73399220081d017db9aaa608844f7b..f203fd793e270231a5ce6fa7178dbf8084a2921c 100644 (file)
             #include <sys/random.h> 
             ])
 
+    AC_CHECK_FUNC([memmem],
+        AC_DEFINE([HAVE_MEMMEM], [1], [Use memmem]), [])
+
     AC_CHECK_FUNCS([utime])
 
     OCFLAGS=$CFLAGS
index c3d83590a6fb902f3f53b6b91fe97eab86ef725f..c55bdf0f430c3fe4272150dd1b75b32a461aa46e 100644 (file)
@@ -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;
index ea04be27c2fe89f15139121e3125d99c161cc335..a76ee804d965967f3ff07f9e9b4b703b15fb7028 100644 (file)
@@ -995,6 +995,18 @@ static int CheckUTHTestPacket(Packet *p, uint8_t ipproto)
     return 1;
 }
 
+#ifdef HAVE_MEMMEM
+#include <string.h>
+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
  */
index 8ce2a4653aa83ee4c3af09e18318c128ec9e29f5..d0a0972711b6a8a835914b20c6b1f13f0e5e011e 100644 (file)
@@ -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