]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
[Bluetooth] Restrict well known PSM to privileged users
authorMarcel Holtmann <marcel@holtmann.org>
Tue, 20 Feb 2007 23:25:10 +0000 (00:25 +0100)
committerAdrian Bunk <bunk@stusta.de>
Tue, 20 Feb 2007 23:25:10 +0000 (00:25 +0100)
The PSM values below 0x1001 of L2CAP are reserved for well known
services. Restrict the possibility to bind them to privileged
users.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
net/bluetooth/l2cap.c

index cb0054585dd7280200b1c6928c9690eed0ab6e0d..328f98846e0805faeed89d36ed3b0b3bd1eed441 100644 (file)
@@ -440,6 +440,12 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_
                goto done;
        }
 
+       if (la->l2_psm > 0 && btohs(la->l2_psm) < 0x1001 &&
+                               !capable(CAP_NET_BIND_SERVICE)) {
+               err = -EACCES;
+               goto done;
+       }
+               
        write_lock_bh(&l2cap_sk_list.lock);
 
        if (la->l2_psm && __l2cap_get_sock_by_addr(la->l2_psm, &la->l2_bdaddr)) {