From: Victor Julien Date: Wed, 4 Apr 2018 11:49:35 +0000 (+0200) Subject: unified2: address strict aliasing issue X-Git-Tag: suricata-4.0.5~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=31d53a84e257c94406c0107aee98c5f1637a47ad;p=thirdparty%2Fsuricata.git unified2: address strict aliasing issue --- diff --git a/src/alert-unified2-alert.c b/src/alert-unified2-alert.c index 4d92bcc703..3f79488005 100644 --- a/src/alert-unified2-alert.c +++ b/src/alert-unified2-alert.c @@ -815,16 +815,17 @@ static int Unified2IPv6TypeAlert(ThreadVars *t, const Packet *p, void *data) gphdr.sensor_id = htonl(sensor_id); gphdr.event_second = htonl(p->ts.tv_sec); gphdr.event_microsecond = htonl(p->ts.tv_usec); - gphdr.src_ip = *(struct in6_addr*)GET_IPV6_SRC_ADDR(p); - gphdr.dst_ip = *(struct in6_addr*)GET_IPV6_DST_ADDR(p); + gphdr.src_ip = GET_IPV6_SRC_IN6ADDR(p); + gphdr.dst_ip = GET_IPV6_SRC_IN6ADDR(p); /** If XFF is in overwrite mode... */ if (aun->xff_flags & XFF_OVERWRITE) { BUG_ON(aun->xff_flags & UNIFIED2_ALERT_XFF_IPV4); + struct in6_addr *a = (struct in6_addr*)aun->xff_ip; if (p->flowflags & FLOW_PKT_TOCLIENT) { - gphdr.dst_ip = *(struct in6_addr*)aun->xff_ip; + gphdr.dst_ip = *a; } else { - gphdr.src_ip = *(struct in6_addr*)aun->xff_ip; + gphdr.src_ip = *a; } } gphdr.protocol = p->proto;