From: Josh Date: Wed, 27 Aug 2014 19:10:35 +0000 (-0400) Subject: getting rid of arp_spoof - type-punned pointer error X-Git-Tag: 3.0.0-233~1417^2~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1b2885f0edc41cb61815502227d309bc7df048ba;p=thirdparty%2Fsnort3.git getting rid of arp_spoof - type-punned pointer error --- diff --git a/src/loggers/CMakeLists.txt b/src/loggers/CMakeLists.txt index 2ed0d780b..104e6f82e 100644 --- a/src/loggers/CMakeLists.txt +++ b/src/loggers/CMakeLists.txt @@ -1,13 +1,13 @@ include_directories(${LUAJIT_INCLUDE_DIR}) -set ( LOGGER_SOURCES +set (LOGGER_SOURCES alert_luajit.cc loggers.cc loggers.h ) -set ( PLUGIN_LIST +set (PLUGIN_LIST alert_csv.cc alert_fast.cc alert_full.cc @@ -20,7 +20,7 @@ set ( PLUGIN_LIST unified2_common.h ) -if( LINUX ) +if (LINUX) set ( PLUGIN_LIST ${PLUGIN_LIST} alert_sf_socket.cc diff --git a/src/main/snort.h b/src/main/snort.h index e7270ef8b..f3d5d8409 100644 --- a/src/main/snort.h +++ b/src/main/snort.h @@ -37,7 +37,7 @@ struct Packet; -struct Flow; +class Flow; struct NetworkPolicy; struct InspectionPolicy; struct IpsPolicy; diff --git a/src/network_inspectors/arp_spoof/arp_spoof.cc b/src/network_inspectors/arp_spoof/arp_spoof.cc index 636e57931..ef38581d8 100644 --- a/src/network_inspectors/arp_spoof/arp_spoof.cc +++ b/src/network_inspectors/arp_spoof/arp_spoof.cc @@ -245,7 +245,7 @@ void ArpSpoof::eval(Packet *p) return; if ((ipme = LookupIPMacEntryByIP(config->ipmel, - *(uint32_t *)&ah->arp_spa)) == NULL) + ah->arp_spa32)) == NULL) { DEBUG_WRAP(DebugMessage(DEBUG_PLUGIN, "MODNAME: LookupIPMacEntryByIp returned NULL\n");); diff --git a/src/protocols/arp.h b/src/protocols/arp.h index 6775ee410..190db2d30 100644 --- a/src/protocols/arp.h +++ b/src/protocols/arp.h @@ -44,7 +44,11 @@ struct EtherARP { ARPHdr ea_hdr; /* fixed-size header */ uint8_t arp_sha[6]; /* sender hardware address */ - uint8_t arp_spa[4]; /* sender protocol address */ + union + { + uint8_t arp_spa[4]; /* sender protocol address */ + uint32_t arp_spa32; + }; uint8_t arp_tha[6]; /* target hardware address */ uint8_t arp_tpa[4]; /* target protocol address */ }; diff --git a/src/test/sfrt_test.cc b/src/test/sfrt_test.cc index 093a74d3c..77dd5533d 100644 --- a/src/test/sfrt_test.cc +++ b/src/test/sfrt_test.cc @@ -27,6 +27,7 @@ #include "snort_types.h" #include "sfrt/sfrt.h" +#include "sfip/sf_ip.h" #define NUM_IPS 32 #define NUM_DATA 4