diff mbox

can: add missing socket check in can/raw release.

Message ID 4DAEC7A0.1090103@hartkopp.net
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Oliver Hartkopp April 20, 2011, 11:46 a.m. UTC
We can get here with a NULL socket argument passed from userspace,
so we need to handle it accordingly.

Thanks to Dave Jones pointing at this issue in net/can/bcm.c

Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>

---

--
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

Comments

David Miller April 20, 2011, 7:02 p.m. UTC | #1
From: Oliver Hartkopp <socketcan@hartkopp.net>
Date: Wed, 20 Apr 2011 13:46:40 +0200

> We can get here with a NULL socket argument passed from userspace,
> so we need to handle it accordingly.
> 
> Thanks to Dave Jones pointing at this issue in net/can/bcm.c
> 
> Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>

I already applied Dave's patch from last night.
--
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
Dave Jones April 20, 2011, 7:04 p.m. UTC | #2
On Wed, Apr 20, 2011 at 12:02:18PM -0700, David Miller wrote:
 > From: Oliver Hartkopp <socketcan@hartkopp.net>
 > Date: Wed, 20 Apr 2011 13:46:40 +0200
 > 
 > > We can get here with a NULL socket argument passed from userspace,
 > > so we need to handle it accordingly.
 > > 
 > > Thanks to Dave Jones pointing at this issue in net/can/bcm.c
 > > 
 > > Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
 > 
 > I already applied Dave's patch from last night.

This is in a different path.

	Dave
--
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/can/raw.c b/net/can/raw.c
index 649acfa..8f215e6 100644
--- a/net/can/raw.c
+++ b/net/can/raw.c
@@ -305,7 +305,12 @@  static int raw_init(struct sock *sk)
 static int raw_release(struct socket *sock)
 {
 	struct sock *sk = sock->sk;
-	struct raw_sock *ro = raw_sk(sk);
+	struct raw_sock *ro;
+
+	if(!sk)
+		return 0;
+
+	ro = raw_sk(sk);

 	unregister_netdevice_notifier(&ro->notifier);