]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
libbpf: fix an snprintf() overflow check
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 19 Jul 2022 09:51:28 +0000 (12:51 +0300)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 19 Jul 2022 17:47:31 +0000 (10:47 -0700)
The snprintf() function returns the number of bytes it *would* have
copied if there were enough space.  So it can return > the
sizeof(gen->attach_target).

Fixes: 67234743736a ("libbpf: Generate loader program out of BPF ELF file.")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Link: https://lore.kernel.org/r/YtZ+oAySqIhFl6/J@kili
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/lib/bpf/gen_loader.c

index 927745b080141d6df0fc8f961bf82a66f3dbee19..23f5c46708f8f38e97134ae89e19feb9b4035444 100644 (file)
@@ -533,7 +533,7 @@ void bpf_gen__record_attach_target(struct bpf_gen *gen, const char *attach_name,
        gen->attach_kind = kind;
        ret = snprintf(gen->attach_target, sizeof(gen->attach_target), "%s%s",
                       prefix, attach_name);
-       if (ret == sizeof(gen->attach_target))
+       if (ret >= sizeof(gen->attach_target))
                gen->error = -ENOSPC;
 }