Commit-ID:  a761a2d8a7175b7b4e8525e0672e1a8d3c051001
Gitweb:     http://git.kernel.org/tip/a761a2d8a7175b7b4e8525e0672e1a8d3c051001
Author:     Alan Cox <[email protected]>
AuthorDate: Mon, 20 Jan 2014 19:10:11 +0100
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Mon, 20 Jan 2014 16:19:08 -0300

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 <[email protected]>
Cc: Alan Cox <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Link: http://lkml.kernel.org/n/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
 tools/perf/util/header.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index bb3e0ed..893f8e2 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -930,7 +930,7 @@ static int write_topo_node(int fd, int node)
                /* skip over invalid lines */
                if (!strchr(buf, ':'))
                        continue;
-               if (sscanf(buf, "%*s %*d %s %"PRIu64, field, &mem) != 2)
+               if (sscanf(buf, "%*s %*d %31s %"PRIu64, field, &mem) != 2)
                        goto done;
                if (!strcmp(field, "MemTotal:"))
                        mem_total = mem;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to