net: remove sockptr_advance
sockptr_advance never properly worked. Replace it with _offset variants
of copy_from_sockptr and copy_to_sockptr.
Fixes: ba423fdaa5
("net: add a new sockptr_t type")
Reported-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reported-by: Ido Schimmel <idosch@idosch.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Jason A. Donenfeld <Jason@zx2c4.com>
Tested-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committato da
David S. Miller

parent
035bfd051e
commit
d3c4815151
@@ -426,9 +426,8 @@ static int dccp_setsockopt_service(struct sock *sk, const __be32 service,
|
||||
return -ENOMEM;
|
||||
|
||||
sl->dccpsl_nr = optlen / sizeof(u32) - 1;
|
||||
sockptr_advance(optval, sizeof(service));
|
||||
if (copy_from_sockptr(sl->dccpsl_list, optval,
|
||||
optlen - sizeof(service)) ||
|
||||
if (copy_from_sockptr_offset(sl->dccpsl_list, optval,
|
||||
sizeof(service), optlen - sizeof(service)) ||
|
||||
dccp_list_has_service(sl, DCCP_SERVICE_INVALID_VALUE)) {
|
||||
kfree(sl);
|
||||
return -EFAULT;
|
||||
|
Fai riferimento in un nuovo problema
Block a user