|
@@ -3752,10 +3752,9 @@ static int sctp_getsockopt_peer_addrs_old(struct sock *sk, int len,
|
|
|
to = (void __user *)getaddrs.addrs;
|
|
|
list_for_each(pos, &asoc->peer.transport_addr_list) {
|
|
|
from = list_entry(pos, struct sctp_transport, transports);
|
|
|
- memcpy(&temp, &from->ipaddr_h, sizeof(temp));
|
|
|
+ memcpy(&temp, &from->ipaddr, sizeof(temp));
|
|
|
sctp_get_pf_specific(sk->sk_family)->addr_v4map(sp, &temp);
|
|
|
addrlen = sctp_get_af_specific(sk->sk_family)->sockaddr_len;
|
|
|
- temp.v4.sin_port = htons(temp.v4.sin_port);
|
|
|
if (copy_to_user(to, &temp, addrlen))
|
|
|
return -EFAULT;
|
|
|
to += addrlen ;
|
|
@@ -3801,12 +3800,11 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
|
|
|
|
|
|
list_for_each(pos, &asoc->peer.transport_addr_list) {
|
|
|
from = list_entry(pos, struct sctp_transport, transports);
|
|
|
- memcpy(&temp, &from->ipaddr_h, sizeof(temp));
|
|
|
+ memcpy(&temp, &from->ipaddr, sizeof(temp));
|
|
|
sctp_get_pf_specific(sk->sk_family)->addr_v4map(sp, &temp);
|
|
|
addrlen = sctp_get_af_specific(sk->sk_family)->sockaddr_len;
|
|
|
if(space_left < addrlen)
|
|
|
return -ENOMEM;
|
|
|
- temp.v4.sin_port = htons(temp.v4.sin_port);
|
|
|
if (copy_to_user(to, &temp, addrlen))
|
|
|
return -EFAULT;
|
|
|
to += addrlen;
|