aboutsummaryrefslogtreecommitdiff
path: root/net/snort3
diff options
context:
space:
mode:
authorDonald Hoskins <grommish@gmail.com>2020-07-04 18:22:12 -0400
committerDonald Hoskins <grommish@gmail.com>2020-07-04 18:22:12 -0400
commite3163364e9402e4fe43a3592a6110201ae37b74d (patch)
tree116fbc786e3adad0b852a4b849cf15bda2b1a9e9 /net/snort3
parent3d9618c61b059e1984d6fcd664752adc18e236fd (diff)
[Snort3/Snort+] Fix Big-Endian compile issues
Signed-off-by: Donald Hoskins <grommish@gmail.com>
Diffstat (limited to 'net/snort3')
-rw-r--r--net/snort3/Makefile2
-rw-r--r--net/snort3/patches/003-fix-bigendian.patch43
2 files changed, 44 insertions, 1 deletions
diff --git a/net/snort3/Makefile b/net/snort3/Makefile
index 370b8127f..47756345f 100644
--- a/net/snort3/Makefile
+++ b/net/snort3/Makefile
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=snort3
PKG_VERSION:=3.0.0-beta
PKG_VERSION_SHORT:=3.0.0
-PKG_RELEASE:=4
+PKG_RELEASE:=5
PKG_SOURCE:=snort-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.snort.org/downloads/snortplus/
diff --git a/net/snort3/patches/003-fix-bigendian.patch b/net/snort3/patches/003-fix-bigendian.patch
new file mode 100644
index 000000000..d0c20d357
--- /dev/null
+++ b/net/snort3/patches/003-fix-bigendian.patch
@@ -0,0 +1,43 @@
+--- a/src/codecs/ip/cd_ipv4.cc 2018-08-28 02:01:02.000000000 -0400
++++ b/src/codecs/ip/cd_ipv4.cc 2020-07-04 17:45:57.125755874 -0400
+@@ -358,8 +358,8 @@
+ /* Loopback traffic - don't use htonl for speed reasons -
+ * s_addr is always in network order */
+ #ifdef WORDS_BIGENDIAN
+- msb_src = (iph.ip_src >> 24);
+- msb_dst = (iph.ip_dst >> 24);
++ msb_src = ((*iph).ip_src >> 24);
++ msb_dst = ((*iph).ip_dst >> 24);
+ #else
+ msb_src = (uint8_t)(iph->ip_src & 0xff);
+ msb_dst = (uint8_t)(iph->ip_dst & 0xff);
+--- a/src/network_inspectors/appid/appid_detector.h 2018-08-28 02:01:02.000000000 -0400
++++ b/src/network_inspectors/appid/appid_detector.h 2020-07-04 18:07:24.196714422 -0400
+@@ -52,6 +52,27 @@
+ DETECTOR_TYPE_NOT_SET
+ };
+
++#define BYTE_SWAP_16(x) \
++ ((uint16_t)((((uint16_t)(x) & 0xff00) >> 8) | \
++ (((uint16_t)(x) & 0x00ff) << 8)))
++
++#define BYTE_SWAP_32(x) \
++ ((uint32_t)((((uint32_t)(x) & 0xff000000) >> 24) | \
++ (((uint32_t)(x) & 0x00ff0000) >> 8) | \
++ (((uint32_t)(x) & 0x0000ff00) << 8) | \
++ (((uint32_t)(x) & 0x000000ff) << 24)))
++
++#define BYTE_SWAP_64(x) \
++ ((uint64_t)((((uint64_t)(x) & 0xff00000000000000ULL) >> 56) | \
++ (((uint64_t)(x) & 0x00ff000000000000ULL) >> 40) | \
++ (((uint64_t)(x) & 0x0000ff0000000000ULL) >> 24) | \
++ (((uint64_t)(x) & 0x000000ff00000000ULL) >> 8) | \
++ (((uint64_t)(x) & 0x00000000ff000000ULL) << 8) | \
++ (((uint64_t)(x) & 0x0000000000ff0000ULL) << 24) | \
++ (((uint64_t)(x) & 0x000000000000ff00ULL) << 40) | \
++ (((uint64_t)(x) & 0x00000000000000ffULL) << 56)))
++
++
+ typedef std::vector<AppRegistryEntry> FlowApplicationInfo;
+
+ struct AppIdFlowContentPattern