提交 91b5c98c 编写于 作者: D Dan Rosenberg 提交者: David S. Miller

caif: don't set connection request param size before copying data

The size field should not be set until after the data is successfully
copied in.
Signed-off-by: NDan Rosenberg <drosenberg@vsecurity.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 80ce3f67
...@@ -740,12 +740,12 @@ static int setsockopt(struct socket *sock, ...@@ -740,12 +740,12 @@ static int setsockopt(struct socket *sock,
if (cf_sk->sk.sk_protocol != CAIFPROTO_UTIL) if (cf_sk->sk.sk_protocol != CAIFPROTO_UTIL)
return -ENOPROTOOPT; return -ENOPROTOOPT;
lock_sock(&(cf_sk->sk)); lock_sock(&(cf_sk->sk));
cf_sk->conn_req.param.size = ol;
if (ol > sizeof(cf_sk->conn_req.param.data) || if (ol > sizeof(cf_sk->conn_req.param.data) ||
copy_from_user(&cf_sk->conn_req.param.data, ov, ol)) { copy_from_user(&cf_sk->conn_req.param.data, ov, ol)) {
release_sock(&cf_sk->sk); release_sock(&cf_sk->sk);
return -EINVAL; return -EINVAL;
} }
cf_sk->conn_req.param.size = ol;
release_sock(&cf_sk->sk); release_sock(&cf_sk->sk);
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册