From: Marcel Holtmann Date: Tue, 20 Feb 2007 23:25:10 +0000 (+0100) Subject: [Bluetooth] Restrict well known PSM to privileged users X-Git-Tag: v2.6.16.42-rc1~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82ea2673f38fd5987aa43351f81110e7c7acd32b;p=thirdparty%2Fkernel%2Fstable.git [Bluetooth] Restrict well known PSM to privileged users 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 Signed-off-by: Adrian Bunk --- diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c index cb0054585dd72..328f98846e080 100644 --- a/net/bluetooth/l2cap.c +++ b/net/bluetooth/l2cap.c @@ -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)) {