浏览代码

Bluetooth: cmtp: cmtp_add_connection() should verify that it's dealing with l2cap socket

... rather than relying on ciptool(8) never passing it anything else.  Give
it e.g. an AF_UNIX connected socket (from socketpair(2)) and it'll oops,
trying to evaluate &l2cap_pi(sock->sk)->chan->dst...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Al Viro 10 年之前
父节点
当前提交
96c26653ce
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      net/bluetooth/cmtp/core.c

+ 3 - 0
net/bluetooth/cmtp/core.c

@@ -334,6 +334,9 @@ int cmtp_add_connection(struct cmtp_connadd_req *req, struct socket *sock)
 
 	BT_DBG("");
 
+	if (!l2cap_is_socket(sock))
+		return -EBADFD;
+
 	session = kzalloc(sizeof(struct cmtp_session), GFP_KERNEL);
 	if (!session)
 		return -ENOMEM;