• Quentin Monnet's avatar
    libbpf: fix string comparison for guessing eBPF program type · d77be689
    Quentin Monnet authored
    libbpf is able to deduce the type of a program from the name of the ELF
    section in which it is located. However, the comparison is made on the
    first n characters, n being determined with sizeof() applied to the
    reference string (e.g. "xdp"). When such section names are supposed to
    receive a suffix separated with a slash (e.g. "kprobe/"), using sizeof()
    takes the final NUL character of the reference string into account,
    which implies that both strings must be equal. Instead, the desired
    behaviour would consist in taking the length of the string, *without*
    accounting for the ending NUL character, and to make sure the reference
    string is a prefix to the ELF section name.
    
    Subtract 1 to the total size of the string for obtaining the length for
    the comparison.
    
    Fixes: 583c9009 ("libbpf: add ability to guess program type based on section name")
    Signed-off-by: default avatarQuentin Monnet <quentin.monnet@netronome.com>
    Acked-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    d77be689
libbpf.c 43.8 KB