diff options
Diffstat (limited to 'filter')
-rw-r--r-- | filter/raw2packet/ulogd_raw2packet_BASE.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/filter/raw2packet/ulogd_raw2packet_BASE.c b/filter/raw2packet/ulogd_raw2packet_BASE.c index b1f4113..a5312e4 100644 --- a/filter/raw2packet/ulogd_raw2packet_BASE.c +++ b/filter/raw2packet/ulogd_raw2packet_BASE.c @@ -769,9 +769,11 @@ static int _interp_ipv6hdr(struct ulogd_pluginstance *pi, u_int32_t len) if (len < sizeof(struct ip6_hdr)) return 0; - ret[KEY_IP_SADDR].u.value.ptr = &ipv6h->ip6_src; + memcpy(ret[KEY_IP_SADDR].u.value.ui128, &ipv6h->ip6_src, + sizeof(ipv6h->ip6_src)); ret[KEY_IP_SADDR].flags |= ULOGD_RETF_VALID; - ret[KEY_IP_DADDR].u.value.ptr = &ipv6h->ip6_dst; + memcpy(ret[KEY_IP_DADDR].u.value.ui128, &ipv6h->ip6_dst, + sizeof(ipv6h->ip6_dst)); ret[KEY_IP_DADDR].flags |= ULOGD_RETF_VALID; ret[KEY_IP6_PAYLOAD_LEN].u.value.ui16 = ntohs(ipv6h->ip6_plen); ret[KEY_IP6_PAYLOAD_LEN].flags |= ULOGD_RETF_VALID; |