--- x/net/netlabel/netlabel_kapi.c +++ y/net/netlabel/netlabel_kapi.c @@ -1047,6 +1047,7 @@ socket_setattr_return: */ void netlbl_sock_delattr(struct sock *sk) { + sockopt_lock_sock(sk); switch (sk->sk_family) { case AF_INET: cipso_v4_sock_delattr(sk); @@ -1057,6 +1058,7 @@ void netlbl_sock_delattr(struct sock *sk break; #endif /* IPv6 */ } + sockopt_release_sock(sk); } /** @@ -1137,6 +1139,7 @@ int netlbl_conn_setattr(struct sock *sk, #endif struct netlbl_dommap_def *entry; + sockopt_lock_sock(sk); rcu_read_lock(); switch (addr->sa_family) { case AF_INET: @@ -1199,6 +1202,7 @@ int netlbl_conn_setattr(struct sock *sk, conn_setattr_return: rcu_read_unlock(); + sockopt_release_sock(sk); return ret_val; }