From: Mykyta Yatsenko <mykyta.yatsenko5@gmail.com>
To: Aaron Tomlin <atomlin@atomlin.com>,
ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org,
eddyz87@gmail.com, memxor@gmail.com
Cc: martin.lau@linux.dev, song@kernel.org, yonghong.song@linux.dev,
jolsa@kernel.org, bpf@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] libbpf: Report error when a negative kprobe offset is specified
Date: Sat, 18 Apr 2026 21:24:56 +0100 [thread overview]
Message-ID: <0a8afc43-dfd8-4aa0-ae94-a82f8c307599@gmail.com> (raw)
In-Reply-To: <20260417195816.1265179-1-atomlin@atomlin.com>
On 4/17/26 8:58 PM, Aaron Tomlin wrote:
> In attach_kprobe(), the parsing logic uses sscanf() to extract the
> target function name and offset from the section definition. Currently,
> if a user specifies a negative offset (e.g., SEC("kprobe/func+-100")),
> the input is not explicitly caught and reported as an error.
>
> This commit updates the logic to explicitly notify the user when a
> negative integer is provided. To facilitate this check, the offset
> variable is changed from unsigned long to long so that sscanf()
> can accurately capture a negative input for evaluation.
>
> If a negative offset is detected, the loader will now print an
> informative warning stating that the offset must be non-negative,
> and return -EINVAL.
>
> Additionally, free(func) is called in this new error path to prevent
> a memory leak, as the function name string is dynamically allocated
> by sscanf().
>
> Signed-off-by: Aaron Tomlin <atomlin@atomlin.com>
> ---
you should have used prefix bpf-next and v2 (this is the second version
of the patch), you can see how other patches format subjects.
The change itself looks correct, the bug is introduced by e3f9bc35ea7e9
("libbpf: Allow decimal offset for kprobes").
Acked-by: Mykyta Yatsenko <yatsenko@meta.com>
> tools/lib/bpf/libbpf.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
> index 42bdba4..cd250fe 100644
> --- a/tools/lib/bpf/libbpf.c
> +++ b/tools/lib/bpf/libbpf.c
> @@ -12271,7 +12271,7 @@ error:
> static int attach_kprobe(const struct bpf_program *prog, long cookie, struct bpf_link **link)
> {
> DECLARE_LIBBPF_OPTS(bpf_kprobe_opts, opts);
> - unsigned long offset = 0;
> + long offset = 0;
> const char *func_name;
> char *func;
> int n;
> @@ -12293,6 +12293,13 @@ static int attach_kprobe(const struct bpf_program *prog, long cookie, struct bpf
> pr_warn("kprobe name is invalid: %s\n", func_name);
> return -EINVAL;
> }
> +
> + if (offset < 0) {
> + free(func);
> + pr_warn("kprobe offset must be a non-negative integer: %li\n", offset);
> + return -EINVAL;
> + }
> +
> if (opts.retprobe && offset != 0) {
> free(func);
> pr_warn("kretprobes do not support offset specification\n");
prev parent reply other threads:[~2026-04-18 20:24 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-17 19:58 [PATCH] libbpf: Report error when a negative kprobe offset is specified Aaron Tomlin
2026-04-17 20:47 ` bot+bpf-ci
2026-04-18 20:24 ` Mykyta Yatsenko [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0a8afc43-dfd8-4aa0-ae94-a82f8c307599@gmail.com \
--to=mykyta.yatsenko5@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=atomlin@atomlin.com \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.lau@linux.dev \
--cc=memxor@gmail.com \
--cc=song@kernel.org \
--cc=yonghong.song@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox