diff mbox

ipv4: inet_bind: check the addr_len first

Message ID 1433236080-5974-1-git-send-email-kda@linux-powerpc.org
State Superseded, archived
Delegated to: David Miller
Headers show

Commit Message

Denis Kirjanov June 2, 2015, 9:08 a.m. UTC
Perform the address length check first, before calling
the the proto specific bind() function

Signed-off-by: Denis Kirjanov <kda@linux-powerpc.org>
---
 net/ipv4/af_inet.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

David Miller June 4, 2015, 2:38 a.m. UTC | #1
From: Denis Kirjanov <kda@linux-powerpc.org>
Date: Tue,  2 Jun 2015 12:08:00 +0300

> Perform the address length check first, before calling
> the the proto specific bind() function
> 
> Signed-off-by: Denis Kirjanov <kda@linux-powerpc.org>

This doesn't fix any actual bug, doesn't improve the code in
preparation for another change that actually benefits from
this adjustment, and so this is really an unwanted change.

This change and it's commit log message look totally arbitrary
and opaque, even to people who have been working with this
code and it's interfaces for decades.  That should tell you
something.

You have to let us know exactly why you are making a change, and what
real _actual_ bug it fixes, when you want us to consider your changes
seriously.

I'm not applying this, sorry.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 6ad0f7a..333e2fa 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -426,14 +426,15 @@  int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
 	int chk_addr_ret;
 	int err;
 
+	err = -EINVAL;
+	if (addr_len < sizeof(struct sockaddr_in))
+		goto out;
+
 	/* If the socket has its own bind function then use it. (RAW) */
 	if (sk->sk_prot->bind) {
 		err = sk->sk_prot->bind(sk, uaddr, addr_len);
 		goto out;
 	}
-	err = -EINVAL;
-	if (addr_len < sizeof(struct sockaddr_in))
-		goto out;
 
 	if (addr->sin_family != AF_INET) {
 		/* Compatibility games : accept AF_UNSPEC (mapped to AF_INET)