samples/bpf: Fix incorrect use of strlen in xdp_redirect_cpu
[ Upstream commit2453afe384
] Commitb599015f04
("samples/bpf: Fix application of sizeof to pointer") tried to fix a bug where sizeof was incorrectly applied to a pointer instead of the array string was being copied to, to find the destination buffer size, but ended up using strlen, which is still incorrect. However, on closer look ifname_buf has no other use, hence directly use optarg. Fixes:b599015f04
("samples/bpf: Fix application of sizeof to pointer") Fixes:e531a220cc
("samples: bpf: Convert xdp_redirect_cpu to XDP samples helper") Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Reviewed-by: Alexander Lobakin <alexandr.lobakin@intel.com> Tested-by: Alexander Lobakin <alexandr.lobakin@intel.com> Link: https://lore.kernel.org/bpf/20211112020301.528357-1-memxor@gmail.com Signed-off-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
ff12332ec6
Коммит
f491758090
|
@ -309,7 +309,6 @@ int main(int argc, char **argv)
|
|||
const char *mprog_filename = NULL, *mprog_name = NULL;
|
||||
struct xdp_redirect_cpu *skel;
|
||||
struct bpf_map_info info = {};
|
||||
char ifname_buf[IF_NAMESIZE];
|
||||
struct bpf_cpumap_val value;
|
||||
__u32 infosz = sizeof(info);
|
||||
int ret = EXIT_FAIL_OPTION;
|
||||
|
@ -390,10 +389,10 @@ int main(int argc, char **argv)
|
|||
case 'd':
|
||||
if (strlen(optarg) >= IF_NAMESIZE) {
|
||||
fprintf(stderr, "-d/--dev name too long\n");
|
||||
usage(argv, long_options, __doc__, mask, true, skel->obj);
|
||||
goto end_cpu;
|
||||
}
|
||||
safe_strncpy(ifname_buf, optarg, strlen(ifname_buf));
|
||||
ifindex = if_nametoindex(ifname_buf);
|
||||
ifindex = if_nametoindex(optarg);
|
||||
if (!ifindex)
|
||||
ifindex = strtoul(optarg, NULL, 0);
|
||||
if (!ifindex) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче