Commit 2453afe3 authored by Kumar Kartikeya Dwivedi's avatar Kumar Kartikeya Dwivedi Committed by Alexei Starovoitov

samples/bpf: Fix incorrect use of strlen in xdp_redirect_cpu

Commit b599015f ("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: b599015f ("samples/bpf: Fix application of sizeof to pointer")
Fixes: e531a220 ("samples: bpf: Convert xdp_redirect_cpu to XDP samples helper")
Signed-off-by: default avatarKumar Kartikeya Dwivedi <memxor@gmail.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Reviewed-by: default avatarAlexander Lobakin <alexandr.lobakin@intel.com>
Tested-by: default avatarAlexander Lobakin <alexandr.lobakin@intel.com>
Link: https://lore.kernel.org/bpf/20211112020301.528357-1-memxor@gmail.comSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent e4ac80ef
...@@ -309,7 +309,6 @@ int main(int argc, char **argv) ...@@ -309,7 +309,6 @@ int main(int argc, char **argv)
const char *mprog_filename = NULL, *mprog_name = NULL; const char *mprog_filename = NULL, *mprog_name = NULL;
struct xdp_redirect_cpu *skel; struct xdp_redirect_cpu *skel;
struct bpf_map_info info = {}; struct bpf_map_info info = {};
char ifname_buf[IF_NAMESIZE];
struct bpf_cpumap_val value; struct bpf_cpumap_val value;
__u32 infosz = sizeof(info); __u32 infosz = sizeof(info);
int ret = EXIT_FAIL_OPTION; int ret = EXIT_FAIL_OPTION;
...@@ -390,10 +389,10 @@ int main(int argc, char **argv) ...@@ -390,10 +389,10 @@ int main(int argc, char **argv)
case 'd': case 'd':
if (strlen(optarg) >= IF_NAMESIZE) { if (strlen(optarg) >= IF_NAMESIZE) {
fprintf(stderr, "-d/--dev name too long\n"); fprintf(stderr, "-d/--dev name too long\n");
usage(argv, long_options, __doc__, mask, true, skel->obj);
goto end_cpu; goto end_cpu;
} }
safe_strncpy(ifname_buf, optarg, strlen(ifname_buf)); ifindex = if_nametoindex(optarg);
ifindex = if_nametoindex(ifname_buf);
if (!ifindex) if (!ifindex)
ifindex = strtoul(optarg, NULL, 0); ifindex = strtoul(optarg, NULL, 0);
if (!ifindex) { if (!ifindex) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment