diff --git a/net/can/bcm.c b/net/can/bcm.c index 95d7f32643aef3a3e0b3830200ea592bb1b54849..1d17e41b892df31e5c9da968fc9647400d62fc0d 100644 --- a/net/can/bcm.c +++ b/net/can/bcm.c @@ -1469,6 +1469,9 @@ static int bcm_release(struct socket *sock) bo->ifindex = 0; } + sock_orphan(sk); + sock->sk = NULL; + release_sock(sk); sock_put(sk); diff --git a/net/can/raw.c b/net/can/raw.c index 6aa154e806ae722c53e71603c0b22865526452a0..3482546e88848f7613ea0c7b47a9dc51f53c2562 100644 --- a/net/can/raw.c +++ b/net/can/raw.c @@ -306,6 +306,9 @@ static int raw_release(struct socket *sock) ro->bound = 0; ro->count = 0; + sock_orphan(sk); + sock->sk = NULL; + release_sock(sk); sock_put(sk);