[PATCH] libbpf: Fix debian kernel version information parsing

From: Sudip Mukherjee

Date: Mon Aug 31 2026 - 13:13:15 EST


Currently get_debian_kernel_version() expects the version to be in the
form of x.y.z but the Debian kernels uploaded to experimental are not
always LTS kernels. Like the current Debian kernel in experimental
is 7.2~rc7-1~exp1 and uname -v reported "Debian 7.2~rc7-1~exp1".

Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
---
tools/lib/bpf/libbpf_probes.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/tools/lib/bpf/libbpf_probes.c b/tools/lib/bpf/libbpf_probes.c
index e40819465ddc7..5acf0f84a40a1 100644
--- a/tools/lib/bpf/libbpf_probes.c
+++ b/tools/lib/bpf/libbpf_probes.c
@@ -62,7 +62,7 @@ static __u32 get_ubuntu_kernel_version(void)
*/
static __u32 get_debian_kernel_version(struct utsname *info)
{
- __u32 major, minor, patch;
+ __u32 major, minor, patch = 0;
char *p;

p = strstr(info->version, "Debian ");
@@ -71,10 +71,13 @@ static __u32 get_debian_kernel_version(struct utsname *info)
return 0;
}

- if (sscanf(p, "Debian %u.%u.%u", &major, &minor, &patch) != 3)
- return 0;
+ if (sscanf(p, "Debian %u.%u.%u", &major, &minor, &patch) == 3)
+ return KERNEL_VERSION(major, minor, patch);

- return KERNEL_VERSION(major, minor, patch);
+ if (sscanf(p, "Debian %u.%u", &major, &minor) == 2)
+ return KERNEL_VERSION(major, minor, patch);
+
+ return 0;
}

__u32 get_kernel_version(void)
--
2.39.5