lkml.org 
[lkml]   [2021]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 107/279] samples/bpf: Fix incorrect use of strlen in xdp_redirect_cpu
    Date
    From: Kumar Kartikeya Dwivedi <memxor@gmail.com>

    [ Upstream commit 2453afe3845523d9dfe89dbfb3d71abfa095e260 ]

    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>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    samples/bpf/xdp_redirect_cpu_user.c | 5 ++---
    1 file changed, 2 insertions(+), 3 deletions(-)

    diff --git a/samples/bpf/xdp_redirect_cpu_user.c b/samples/bpf/xdp_redirect_cpu_user.c
    index d84e6949007cc..a81704d3317ba 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) {
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-11-24 14:54    [W:4.024 / U:0.224 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site