mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 08:14:15 +08:00
bpf: Remove truncation test in bpf_strtol and bpf_strtoul helpers
Both bpf_strtol() and bpf_strtoul() helpers passed a temporary "long long" respectively "unsigned long long" to __bpf_strtoll() / __bpf_strtoull(). Later, the result was checked for truncation via _res != ({unsigned,} long)_res as the destination buffer for the BPF helpers was of type {unsigned,} long which is 32bit on 32bit architectures. Given the latter was a bug in the helper signatures where the destination buffer got adjusted to {s,u}64, the truncation check can now be removed. Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/r/20240913191754.13290-2-daniel@iogearbox.net Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
cfe69c50b0
commit
7d71f59e02
@ -526,8 +526,6 @@ BPF_CALL_4(bpf_strtol, const char *, buf, size_t, buf_len, u64, flags,
|
||||
err = __bpf_strtoll(buf, buf_len, flags, &_res);
|
||||
if (err < 0)
|
||||
return err;
|
||||
if (_res != (long)_res)
|
||||
return -ERANGE;
|
||||
*res = _res;
|
||||
return err;
|
||||
}
|
||||
@ -554,8 +552,6 @@ BPF_CALL_4(bpf_strtoul, const char *, buf, size_t, buf_len, u64, flags,
|
||||
return err;
|
||||
if (is_negative)
|
||||
return -EINVAL;
|
||||
if (_res != (unsigned long)_res)
|
||||
return -ERANGE;
|
||||
*res = _res;
|
||||
return err;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user