| From c6914a6f261aca0c9f715f883a353ae7ff51fe83 Mon Sep 17 00:00:00 2001 |
| From: Dave Jones <davej@redhat.com> |
| Date: Tue, 19 Apr 2011 20:36:59 -0700 |
| Subject: can: Add missing socket check in can/bcm release. |
| |
| From: Dave Jones <davej@redhat.com> |
| |
| commit c6914a6f261aca0c9f715f883a353ae7ff51fe83 upstream. |
| |
| We can get here with a NULL socket argument passed from userspace, |
| so we need to handle it accordingly. |
| |
| Signed-off-by: Dave Jones <davej@redhat.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| net/can/bcm.c | 7 ++++++- |
| 1 file changed, 6 insertions(+), 1 deletion(-) |
| |
| --- a/net/can/bcm.c |
| +++ b/net/can/bcm.c |
| @@ -1412,9 +1412,14 @@ static int bcm_init(struct sock *sk) |
| static int bcm_release(struct socket *sock) |
| { |
| struct sock *sk = sock->sk; |
| - struct bcm_sock *bo = bcm_sk(sk); |
| + struct bcm_sock *bo; |
| struct bcm_op *op, *next; |
| |
| + if (sk == NULL) |
| + return 0; |
| + |
| + bo = bcm_sk(sk); |
| + |
| /* remove bcm_ops, timer, rx_unregister(), etc. */ |
| |
| unregister_netdevice_notifier(&bo->notifier); |