Return EINVAL if the user provides a return data structure for getsockname that is too small to hold the PF_ address. This introduces a new error code but this should be OK as the error is real and would otherwise corrupt the user-application's stack, i.e., it results in trouble no matter what. I do not do a partial copy of the sockaddr structure because it does not make very much sense to retrieve only part of the socket address (e.g., ip + af_family).
Subsystems (2)
PATCH 1/1 Return EINVAL if the user provides a return data structure for getsockname that is too small to hold the PF_ address. This introduces a new error code but this should be OK as the error is real and would otherwise corrupt the user-application's stack, i.e., it results in trouble no matter what. I do not do a partial copy of the sockaddr structure because it does not make very much sense to retrieve only part of the socket address (e.g., ip + af_family).
--- net/ipv4/af_inet.c | 7 +++++-- net/ipv6/af_inet6.c | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-)
net/ipv4/af_inet.c +5 -2
@@ -677,10 +677,13 @@ do_err:int inet_getname (struct socket *sock,struct sockaddr *uaddr,int *uaddr_len,int peer) { -struct sock *sk = sock->sk; -struct inet_sock *inet =inet_sk (sk); +struct sock *sk = sock->sk; +struct inet_sock *inet =inet_sk (sk);struct sockaddr_in *sin = (struct sockaddr_in *)uaddr; +if (*uaddr_len <sizeof (struct sockaddr_in )) +return -EINVAL ; + sin->sin_family =AF_INET ;if (peer) { if (!inet->dport ||
net/ipv6/af_inet6.c +3 -0
@@ -401,6 +401,9 @@ int inet6_getname(struct socket *sock, struct sockaddr *uaddr,struct inet_sock *inet =inet_sk (sk);struct ipv6_pinfo *np =inet6_sk (sk); +if (*uaddr_len <sizeof (struct sockaddr_in6 )) +return -EINVAL ; + sin->sin6_family =AF_INET6 ; sin->sin6_flowinfo =0 ; sin->sin6_scope_id =0 ;
Signature · 1 line
1.5.4.5
Quoted 4 lines · John Reumann
---
net/ipv4/af_inet.c | 7 +++++-- net/ipv6/af_inet6.c | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-)
Why are you resending this patch with no real changes? We had already vetoed it in its current form.
Cheers,
Signature · 4 lines
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt