diff options
author | Kumar Kartikeya Dwivedi <memxor@gmail.com> | 2021-11-12 07:33:01 +0530 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2021-11-12 17:23:16 -0800 |
commit | 2453afe3845523d9dfe89dbfb3d71abfa095e260 (patch) | |
tree | 5837fe04c96aba74acee37ec4ff6c923c14b1576 /samples/bpf | |
parent | e4ac80ef8198636a23866a59575917550328886f (diff) | |
download | linux-stable-2453afe3845523d9dfe89dbfb3d71abfa095e260.tar.gz linux-stable-2453afe3845523d9dfe89dbfb3d71abfa095e260.tar.bz2 linux-stable-2453afe3845523d9dfe89dbfb3d71abfa095e260.zip |
samples/bpf: Fix incorrect use of strlen in xdp_redirect_cpu
Commit b599015f044d ("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: b599015f044d ("samples/bpf: Fix application of sizeof to pointer")
Fixes: e531a220cc59 ("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>
Diffstat (limited to 'samples/bpf')
-rw-r--r-- | samples/bpf/xdp_redirect_cpu_user.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/samples/bpf/xdp_redirect_cpu_user.c b/samples/bpf/xdp_redirect_cpu_user.c index d84e6949007c..a81704d3317b 100644 --- a/samples/bpf/xdp_redirect_cpu_user.c +++ b/samples/bpf/xdp_redirect_cpu_user.c @@ -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) { |