diff options
Diffstat (limited to 'net/ipv6/ipv6_sockglue.c')
| -rw-r--r-- | net/ipv6/ipv6_sockglue.c | 8 | 
1 files changed, 3 insertions, 5 deletions
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c index c99e3ee9781..29993b7079a 100644 --- a/net/ipv6/ipv6_sockglue.c +++ b/net/ipv6/ipv6_sockglue.c @@ -435,7 +435,7 @@ sticky_done:  			goto e_inval;  		np->sticky_pktinfo.ipi6_ifindex = pkt.ipi6_ifindex; -		ipv6_addr_copy(&np->sticky_pktinfo.ipi6_addr, &pkt.ipi6_addr); +		np->sticky_pktinfo.ipi6_addr = pkt.ipi6_addr;  		retv = 0;  		break;  	} @@ -980,8 +980,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,  				struct in6_pktinfo src_info;  				src_info.ipi6_ifindex = np->mcast_oif ? np->mcast_oif :  					np->sticky_pktinfo.ipi6_ifindex; -				np->mcast_oif? ipv6_addr_copy(&src_info.ipi6_addr, &np->daddr) : -					ipv6_addr_copy(&src_info.ipi6_addr, &(np->sticky_pktinfo.ipi6_addr)); +				src_info.ipi6_addr = np->mcast_oif ? np->daddr : np->sticky_pktinfo.ipi6_addr;  				put_cmsg(&msg, SOL_IPV6, IPV6_PKTINFO, sizeof(src_info), &src_info);  			}  			if (np->rxopt.bits.rxhlim) { @@ -992,8 +991,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,  				struct in6_pktinfo src_info;  				src_info.ipi6_ifindex = np->mcast_oif ? np->mcast_oif :  					np->sticky_pktinfo.ipi6_ifindex; -				np->mcast_oif? ipv6_addr_copy(&src_info.ipi6_addr, &np->daddr) : -					ipv6_addr_copy(&src_info.ipi6_addr, &(np->sticky_pktinfo.ipi6_addr)); +				src_info.ipi6_addr = np->mcast_oif ? np->daddr : np->sticky_pktinfo.ipi6_addr;  				put_cmsg(&msg, SOL_IPV6, IPV6_2292PKTINFO, sizeof(src_info), &src_info);  			}  			if (np->rxopt.bits.rxohlim) {  |