Message ID | 20200818083357.GA5442@oppo (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | net/bluetooth/rfcomm/sock.c: add CAP_NET_RAW check. | expand |
diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c index ae6f80730561..d67d49e5aa00 100644 --- a/net/bluetooth/rfcomm/sock.c +++ b/net/bluetooth/rfcomm/sock.c @@ -321,6 +321,9 @@ static int rfcomm_sock_create(struct net *net, struct socket *sock, if (sock->type != SOCK_STREAM && sock->type != SOCK_RAW) return -ESOCKTNOSUPPORT; + if (sock->type == SOCK_RAW && !kern && !capable(CAP_NET_RAW)) + return -EPERM; + sock->ops = &rfcomm_sock_ops; sk = rfcomm_sock_alloc(net, sock, protocol, GFP_ATOMIC, kern);
When creating a raw PF_BLUETOOTH socket, CAP_NET_RAW needs to be checked first. Signed-off-by: Qingyu Li <ieatmuttonchuan@gmail.com> --- net/bluetooth/rfcomm/sock.c | 3 +++ 1 file changed, 3 insertions(+) -- 2.17.1