|
@@ -322,7 +322,7 @@ int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len)
|
|
struct ipv6_pinfo *np = inet6_sk(sk);
|
|
struct ipv6_pinfo *np = inet6_sk(sk);
|
|
struct sock_exterr_skb *serr;
|
|
struct sock_exterr_skb *serr;
|
|
struct sk_buff *skb, *skb2;
|
|
struct sk_buff *skb, *skb2;
|
|
- struct sockaddr_in6 *sin;
|
|
|
|
|
|
+ DECLARE_SOCKADDR(struct sockaddr_in6 *, sin, msg->msg_name);
|
|
struct {
|
|
struct {
|
|
struct sock_extended_err ee;
|
|
struct sock_extended_err ee;
|
|
struct sockaddr_in6 offender;
|
|
struct sockaddr_in6 offender;
|
|
@@ -348,7 +348,6 @@ int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len)
|
|
|
|
|
|
serr = SKB_EXT_ERR(skb);
|
|
serr = SKB_EXT_ERR(skb);
|
|
|
|
|
|
- sin = (struct sockaddr_in6 *)msg->msg_name;
|
|
|
|
if (sin) {
|
|
if (sin) {
|
|
const unsigned char *nh = skb_network_header(skb);
|
|
const unsigned char *nh = skb_network_header(skb);
|
|
sin->sin6_family = AF_INET6;
|
|
sin->sin6_family = AF_INET6;
|
|
@@ -429,8 +428,8 @@ int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len,
|
|
{
|
|
{
|
|
struct ipv6_pinfo *np = inet6_sk(sk);
|
|
struct ipv6_pinfo *np = inet6_sk(sk);
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
- struct sockaddr_in6 *sin;
|
|
|
|
struct ip6_mtuinfo mtu_info;
|
|
struct ip6_mtuinfo mtu_info;
|
|
|
|
+ DECLARE_SOCKADDR(struct sockaddr_in6 *, sin, msg->msg_name);
|
|
int err;
|
|
int err;
|
|
int copied;
|
|
int copied;
|
|
|
|
|
|
@@ -452,7 +451,6 @@ int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len,
|
|
|
|
|
|
memcpy(&mtu_info, IP6CBMTU(skb), sizeof(mtu_info));
|
|
memcpy(&mtu_info, IP6CBMTU(skb), sizeof(mtu_info));
|
|
|
|
|
|
- sin = (struct sockaddr_in6 *)msg->msg_name;
|
|
|
|
if (sin) {
|
|
if (sin) {
|
|
sin->sin6_family = AF_INET6;
|
|
sin->sin6_family = AF_INET6;
|
|
sin->sin6_flowinfo = 0;
|
|
sin->sin6_flowinfo = 0;
|