diff options
Diffstat (limited to 'security')
-rw-r--r-- | security/selinux/netlabel.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/security/selinux/netlabel.c b/security/selinux/netlabel.c index da4b8b233280..6235d052338b 100644 --- a/security/selinux/netlabel.c +++ b/security/selinux/netlabel.c | |||
@@ -442,8 +442,7 @@ int selinux_netlbl_socket_connect(struct sock *sk, struct sockaddr *addr) | |||
442 | sksec->nlbl_state != NLBL_CONNLABELED) | 442 | sksec->nlbl_state != NLBL_CONNLABELED) |
443 | return 0; | 443 | return 0; |
444 | 444 | ||
445 | local_bh_disable(); | 445 | lock_sock(sk); |
446 | bh_lock_sock_nested(sk); | ||
447 | 446 | ||
448 | /* connected sockets are allowed to disconnect when the address family | 447 | /* connected sockets are allowed to disconnect when the address family |
449 | * is set to AF_UNSPEC, if that is what is happening we want to reset | 448 | * is set to AF_UNSPEC, if that is what is happening we want to reset |
@@ -464,7 +463,6 @@ int selinux_netlbl_socket_connect(struct sock *sk, struct sockaddr *addr) | |||
464 | sksec->nlbl_state = NLBL_CONNLABELED; | 463 | sksec->nlbl_state = NLBL_CONNLABELED; |
465 | 464 | ||
466 | socket_connect_return: | 465 | socket_connect_return: |
467 | bh_unlock_sock(sk); | 466 | release_sock(sk); |
468 | local_bh_enable(); | ||
469 | return rc; | 467 | return rc; |
470 | } | 468 | } |