diff options
Diffstat (limited to 'net/nfc/llcp_sock.c')
| -rw-r--r-- | net/nfc/llcp_sock.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/net/nfc/llcp_sock.c b/net/nfc/llcp_sock.c index 9b8742947aff..8dfea26536c9 100644 --- a/net/nfc/llcp_sock.c +++ b/net/nfc/llcp_sock.c @@ -1004,10 +1004,13 @@ static int llcp_sock_create(struct net *net, struct socket *sock,  	    sock->type != SOCK_RAW)  		return -ESOCKTNOSUPPORT; -	if (sock->type == SOCK_RAW) +	if (sock->type == SOCK_RAW) { +		if (!capable(CAP_NET_RAW)) +			return -EPERM;  		sock->ops = &llcp_rawsock_ops; -	else +	} else {  		sock->ops = &llcp_sock_ops; +	}  	sk = nfc_llcp_sock_alloc(sock, sock->type, GFP_ATOMIC, kern);  	if (sk == NULL)  |