From: Karel Zak Date: Tue, 20 May 2025 08:10:59 +0000 (+0200) Subject: lscpu: fix possible buffer overflow in cpuinfo parser X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ea04d719352add738251446315cebdada90171a9;p=thirdparty%2Futil-linux.git lscpu: fix possible buffer overflow in cpuinfo parser Addresses: https://github.com/util-linux/util-linux/pull/3577 Signed-off-by: Karel Zak --- diff --git a/sys-utils/lscpu-cputype.c b/sys-utils/lscpu-cputype.c index bdb33ac78..0626df6a0 100644 --- a/sys-utils/lscpu-cputype.c +++ b/sys-utils/lscpu-cputype.c @@ -288,7 +288,7 @@ static const struct cpuinfo_pattern cache_patterns[] = DEF_PAT_CACHE("cache", PAT_CACHE), }; -#define CPUTYPE_PATTERN_BUFSZ 32 +#define CPUTYPE_PATTERN_BUFSZ 128 static int cmp_pattern(const void *a0, const void *b0) { @@ -462,8 +462,7 @@ static const struct cpuinfo_pattern *cpuinfo_parse_line(char *str, char **value, return NULL; /* prepare name of the field */ - xstrncpy(buf, p, sizeof(buf)); - buf[v - p] = '\0'; + xstrncpy(buf, p, min((size_t)(v - p)+1, sizeof(buf))); v++; /* prepare value */