From e9517aedd34f340bbaea55cd773d6f0e711b0001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Mon, 11 Aug 2025 20:53:16 -0700 Subject: [PATCH] KernelUtils: make failure to call & parse uname abort MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In practice this is already the case... If uname() execution fails, or we fail to parse the result, we won't pass the 4.9+ required check in NetBpfLoad, which is required on S+, and mainline no longer supports anything Change-Id: I66a5eba5c7bcf9bd51997db93c0fefc8104945eb --- bpf/headers/include/bpf/KernelUtils.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bpf/headers/include/bpf/KernelUtils.h b/bpf/headers/include/bpf/KernelUtils.h index 7bdef5af39..f2b0be1caa 100644 --- a/bpf/headers/include/bpf/KernelUtils.h +++ b/bpf/headers/include/bpf/KernelUtils.h @@ -17,6 +17,7 @@ #pragma once #include +#include #include #include #include @@ -28,12 +29,12 @@ namespace bpf { static inline unsigned uncachedKernelVersion() { struct utsname buf; - if (uname(&buf)) return 0; + if (uname(&buf)) abort(); unsigned kver_major = 0; unsigned kver_minor = 0; unsigned kver_sub = 0; - (void)sscanf(buf.release, "%u.%u.%u", &kver_major, &kver_minor, &kver_sub); + if (sscanf(buf.release, "%u.%u.%u", &kver_major, &kver_minor, &kver_sub) < 2) abort(); return KVER(kver_major, kver_minor, kver_sub); }