linux/tools
Aaron Tomlin ad35d80186
libbpf: Report error when a negative kprobe offset is specified
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().

Fixes: e3f9bc35ea ("libbpf: Allow decimal offset for kprobes")
Signed-off-by: Aaron Tomlin <atomlin@atomlin.com>
Acked-by: Mykyta Yatsenko <yatsenko@meta.com>
Link: https://lore.kernel.org/bpf/20260419030944.1423642-1-atomlin@atomlin.com
Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
2026-04-19 13:52:34 +02:00
..
accounting tools/accounting: handle truncated taskstats netlink messages 2026-04-15 02:15:02 -07:00
arch Arm: 2026-04-17 07:18:03 -07:00
bootconfig
bpf bpftool: add missing fsession to the usage and docs of bpftool 2026-04-12 12:42:38 -07:00
build perf tools updates for 7.1 2026-04-18 09:24:56 -07:00
certs
cgroup
counter
crypto
debugging
dma
docs
firewire
firmware
gpio
hv
iio
include memblock: updates for 7.0-rc1 2026-04-18 11:29:14 -07:00
kvm/kvm_stat
laptop
leds
lib libbpf: Report error when a negative kprobe offset is specified 2026-04-19 13:52:34 +02:00
memory-model
mm
net tools: ynl: add sample for wireguard 2026-04-14 11:48:04 -07:00
objtool objtool updates for v7.1: 2026-04-14 13:00:04 -07:00
pcmcia
perf perf tools updates for 7.1 2026-04-18 09:24:56 -07:00
power Power management updates for 7.1-rc1 2026-04-13 19:47:52 -07:00
rcu
sched
sched_ext tools/sched_ext: Add explicit cast from void* in RESIZE_ARRAY() 2026-04-13 06:14:11 -10:00
scripts Kbuild/Kconfig updates for 7.1 2026-04-14 09:18:40 -07:00
sound
spi
testing memblock: updates for 7.0-rc1 2026-04-18 11:29:14 -07:00
thermal
time
tracing RTLA patches for v7.1: 2026-04-15 17:48:24 -07:00
unittests
usb
verification
virtio
wmi
workqueue
writeback
Makefile