diff options
Diffstat (limited to 'security/lsm_audit.c')
| -rw-r--r-- | security/lsm_audit.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/security/lsm_audit.c b/security/lsm_audit.c index 893af8a2fa1..7bd6f138236 100644 --- a/security/lsm_audit.c +++ b/security/lsm_audit.c @@ -114,19 +114,20 @@ int ipv6_skb_to_auditdata(struct sk_buff *skb,  	int offset, ret = 0;  	struct ipv6hdr *ip6;  	u8 nexthdr; +	__be16 frag_off;  	ip6 = ipv6_hdr(skb);  	if (ip6 == NULL)  		return -EINVAL; -	ipv6_addr_copy(&ad->u.net.v6info.saddr, &ip6->saddr); -	ipv6_addr_copy(&ad->u.net.v6info.daddr, &ip6->daddr); +	ad->u.net.v6info.saddr = ip6->saddr; +	ad->u.net.v6info.daddr = ip6->daddr;  	ret = 0;  	/* IPv6 can have several extension header before the Transport header  	 * skip them */  	offset = skb_network_offset(skb);  	offset += sizeof(*ip6);  	nexthdr = ip6->nexthdr; -	offset = ipv6_skip_exthdr(skb, offset, &nexthdr); +	offset = ipv6_skip_exthdr(skb, offset, &nexthdr, &frag_off);  	if (offset < 0)  		return 0;  	if (proto)  |