From: Bob Hockney Date: Wed, 19 Dec 2012 19:34:57 +0000 (-0700) Subject: Fix parsing of ipv6 flowlabel and tc fields X-Git-Tag: ulogd-2.0.2~28 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=492e28053ff060c3aae63ab628c9600e81d8e5c4;p=thirdparty%2Fulogd2.git Fix parsing of ipv6 flowlabel and tc fields Mask should be applied after ntohl conversion. --- diff --git a/filter/raw2packet/ulogd_raw2packet_BASE.c b/filter/raw2packet/ulogd_raw2packet_BASE.c index d0fcdfa..05141b8 100644 --- a/filter/raw2packet/ulogd_raw2packet_BASE.c +++ b/filter/raw2packet/ulogd_raw2packet_BASE.c @@ -784,9 +784,9 @@ static int _interp_ipv6hdr(struct ulogd_pluginstance *pi, u_int32_t len) okey_set_u128(&ret[KEY_IP_DADDR], &ipv6h->ip6_dst); okey_set_u16(&ret[KEY_IP6_PAYLOAD_LEN], ntohs(ipv6h->ip6_plen)); okey_set_u8(&ret[KEY_IP6_PRIORITY], - ntohl(ipv6h->ip6_flow & 0x0ff00000) >> 20); + (ntohl(ipv6h->ip6_flow) & 0x0ff00000) >> 20); okey_set_u32(&ret[KEY_IP6_FLOWLABEL], - ntohl(ipv6h->ip6_flow & 0x000fffff)); + ntohl(ipv6h->ip6_flow) & 0x000fffff); okey_set_u8(&ret[KEY_IP6_HOPLIMIT], ipv6h->ip6_hlim); curhdr = ipv6h->ip6_nxt;