Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 79795120 authored by Paul Moore's avatar Paul Moore Committed by David S. Miller
Browse files

NetLabel: correct locking in selinux_netlbl_socket_setsid()



The spinlock protecting the update of the "sksec->nlbl_state" variable is not
currently softirq safe which can lead to problems.  This patch fixes this by
changing the spin_{un}lock() functions into spin_{un}lock_bh() functions.

Signed-off-by: default avatarPaul Moore <paul.moore@hp.com>
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent 86112ffd
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -2491,9 +2491,9 @@ static int selinux_netlbl_socket_setsid(struct socket *sock, u32 sid)


	rc = netlbl_socket_setattr(sock, &secattr);
	rc = netlbl_socket_setattr(sock, &secattr);
	if (rc == 0) {
	if (rc == 0) {
		spin_lock(&sksec->nlbl_lock);
		spin_lock_bh(&sksec->nlbl_lock);
		sksec->nlbl_state = NLBL_LABELED;
		sksec->nlbl_state = NLBL_LABELED;
		spin_unlock(&sksec->nlbl_lock);
		spin_unlock_bh(&sksec->nlbl_lock);
	}
	}


netlbl_socket_setsid_return:
netlbl_socket_setsid_return: