From 708aad3f4ac108b28b01286b35ba9411cbf9cc83 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Wed, 4 Apr 2018 13:49:35 +0200 Subject: [PATCH] unified2: address strict aliasing issue --- src/alert-unified2-alert.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/alert-unified2-alert.c b/src/alert-unified2-alert.c index 01af656084..2abcd59528 100644 --- a/src/alert-unified2-alert.c +++ b/src/alert-unified2-alert.c @@ -844,16 +844,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; -- 2.47.2