From: Mykyta Yatsenko <mykyta.yatsenko5@gmail.com>
To: Aaron Tomlin <atomlin@atomlin.com>, bpf@vger.kernel.org
Subject: Re: [PATCH] libbpf: Report error when a negative kprobe offset is specified
Date: Fri, 17 Apr 2026 20:16:16 +0100 [thread overview]
Message-ID: <4426b0f7-589a-44b9-9bc9-4522f6a23d52@gmail.com> (raw)
In-Reply-To: <20260417184627.1259158-1-atomlin@atomlin.com>
On 4/17/26 7:46 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>
> ---
> src/libbpf.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/src/libbpf.c b/src/libbpf.c
> index 42bdba4..cd250fe 100644
> --- a/src/libbpf.c
The upstream of the libbpf is linux kernel repository (tools/lib/bpf).
Is this patch for libbpf github repo? Please resend for linux kernel.
pw-bot: cr
> +++ b/src/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");
next prev parent reply other threads:[~2026-04-17 19:16 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-17 18:46 [PATCH] libbpf: Report error when a negative kprobe offset is specified Aaron Tomlin
2026-04-17 19:16 ` Mykyta Yatsenko [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-04-17 19:58 Aaron Tomlin
2026-04-17 20:47 ` bot+bpf-ci
2026-04-18 20:24 ` Mykyta Yatsenko
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=4426b0f7-589a-44b9-9bc9-4522f6a23d52@gmail.com \
--to=mykyta.yatsenko5@gmail.com \
--cc=atomlin@atomlin.com \
--cc=bpf@vger.kernel.org \
/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