--- x/security/smack/smack_lsm.c +++ y/security/smack/smack_lsm.c @@ -2575,6 +2575,7 @@ static int smack_netlbl_add(struct sock struct smack_known *skp = ssp->smk_out; int rc; + sock_hold(sk); local_bh_disable(); bh_lock_sock_nested(sk); @@ -2591,6 +2592,7 @@ static int smack_netlbl_add(struct sock } bh_unlock_sock(sk); + sock_put(sk); local_bh_enable(); return rc; @@ -2612,10 +2614,12 @@ static void smack_netlbl_delete(struct s if (ssp->smk_state != SMK_NETLBL_LABELED) return; + sock_hold(sk); local_bh_disable(); bh_lock_sock_nested(sk); netlbl_sock_delattr(sk); bh_unlock_sock(sk); + sock_put(sk); local_bh_enable(); ssp->smk_state = SMK_NETLBL_UNLABELED; }