Parcourir la source

perf: Fix read buffer overflow

Check whether index is within bounds before testing the element.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Cc: a.p.zijlstra@chello.nl
Cc: Andrew Morton <akpm@linux-foundation.org>
LKML-Reference: <4A757BCF.40101@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Roel Kluin il y a 15 ans
Parent
commit
7e030655dd
2 fichiers modifiés avec 2 ajouts et 2 suppressions
  1. 1 1
      tools/perf/builtin-report.c
  2. 1 1
      tools/perf/util/quote.c

+ 1 - 1
tools/perf/builtin-report.c

@@ -253,7 +253,7 @@ static int strcommon(const char *pathname)
 {
 {
 	int n = 0;
 	int n = 0;
 
 
-	while (pathname[n] == cwd[n] && n < cwdlen)
+	while (n < cwdlen && pathname[n] == cwd[n])
 		++n;
 		++n;
 
 
 	return n;
 	return n;

+ 1 - 1
tools/perf/util/quote.c

@@ -318,7 +318,7 @@ char *quote_path_relative(const char *in, int len,
 		strbuf_addch(out, '"');
 		strbuf_addch(out, '"');
 	if (prefix) {
 	if (prefix) {
 		int off = 0;
 		int off = 0;
-		while (prefix[off] && off < len && prefix[off] == in[off])
+		while (off < len && prefix[off] && prefix[off] == in[off])
 			if (prefix[off] == '/') {
 			if (prefix[off] == '/') {
 				prefix += off + 1;
 				prefix += off + 1;
 				in += off + 1;
 				in += off + 1;