Skip to contentSkip to conversation

can: add missing socket check in can/raw release

PATCH In review Oliver Hartkopp 3 participants 3 messages Apr 20, 2011

Subsystems (3)
lore
Share & tools
lore

Oliver Hartkopp

author maintainer
#0 lore raw

PATCH v2 1/1 can: add missing socket check in can/raw release

v2: added space after 'if' according code style.

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

---

net/can/raw.c +6 -1
index 649acfa..8f215e6 100644
@@ -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);
 
#1 lore raw
Quoted 8 lines · Oliver Hartkopp

v2: added space after 'if' according code style.

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

ACK. That was the first thing I hit this morning ;-)

Dave

maintainer
#2 lore raw

From: Dave Jones <[email protected]>
Date: Wed, 20 Apr 2011 13:03:34 -0400

Quoted 11 lines · Oliver Hartkopp
Quoted 8 lines

v2: added space after 'if' according code style.

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

ACK. That was the first thing I hit this morning ;-)

Aha, so this patch fixes the same bug in a different part of CAN, I missed that :-)

Ok I'll apply this, thanks!