Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf tools: Ensure sscanf does not overrun the "mem" field

Make the parsing robust.

(perf has some other assumptions that BUFSIZE <= MAX_PATH which are
not touched here)

Reported-by: Jackie Chang
Signed-off-by: Alan Cox <alan@linux.intel.com>
Cc: Alan Cox <gnomes@lxorguk.ukuu.org.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/n/tip-g2uoiwbrpiimb63rx32qv8ne@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Alan Cox and committed by
Arnaldo Carvalho de Melo
a761a2d8 8a398897

+1 -1
+1 -1
tools/perf/util/header.c
··· 930 930 /* skip over invalid lines */ 931 931 if (!strchr(buf, ':')) 932 932 continue; 933 - if (sscanf(buf, "%*s %*d %s %"PRIu64, field, &mem) != 2) 933 + if (sscanf(buf, "%*s %*d %31s %"PRIu64, field, &mem) != 2) 934 934 goto done; 935 935 if (!strcmp(field, "MemTotal:")) 936 936 mem_total = mem;