From 81a307bd4d906815dad7b6b3c355f663907a68c4 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Fri, 24 Jun 2016 11:07:00 +0200 Subject: lscpu: make lookup_cache() more robust Signed-off-by: Karel Zak --- sys-utils/lscpu.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'sys-utils/lscpu.c') diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c index 4bd8e872d..b30b003b1 100644 --- a/sys-utils/lscpu.c +++ b/sys-utils/lscpu.c @@ -438,15 +438,20 @@ lookup_cache(char *line, struct lscpu_desc *desc) if (!p || strncmp(p, "Private", 7) == 0) return 0; p = strstr(line, "level="); - sscanf(p, "level=%d", &level); + if (!p || sscanf(p, "level=%d", &level) != 1) + return 0; p = strstr(line, "type=") + 5; + if (!p || !*p) + return 0; type = 0; if (strncmp(p, "Data", 4) == 0) type = 'd'; if (strncmp(p, "Instruction", 11) == 0) type = 'i'; p = strstr(line, "size="); - sscanf(p, "size=%lld", &size); + if (!p || sscanf(p, "size=%lld", &size) != 1) + return 0; + desc->necaches++; desc->ecaches = xrealloc(desc->ecaches, desc->necaches * sizeof(struct cpu_cache)); -- cgit v1.2.3-55-g7522