summaryrefslogtreecommitdiff
path: root/tools/perf/ui/browsers/scripts.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2019-03-11 07:45:01 -0700
committerArnaldo Carvalho de Melo <acme@redhat.com>2019-03-11 16:33:19 -0300
commit905e4aff31382c3f9b2014d1361f4a1be4479ba2 (patch)
tree3f1f3cf123f08ce46f432cb3f4fa6219390356ae /tools/perf/ui/browsers/scripts.c
parentca52babe033f2a0a535ce7c814e54a44cead1f15 (diff)
perf script: Add array bound checking to list_scripts
Don't overflow array when the scripts directory is too large, or the script file name is too long. Signed-off-by: Andi Kleen <ak@linux.intel.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Link: http://lkml.kernel.org/r/20190311144502.15423-11-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/ui/browsers/scripts.c')
-rw-r--r--tools/perf/ui/browsers/scripts.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/perf/ui/browsers/scripts.c b/tools/perf/ui/browsers/scripts.c
index cdba58447b85..96e5cd3b0eee 100644
--- a/tools/perf/ui/browsers/scripts.c
+++ b/tools/perf/ui/browsers/scripts.c
@@ -97,7 +97,8 @@ static int list_scripts(char *script_name, bool *custom,
paths[i] = names[i] + SCRIPT_NAMELEN;
}
- num = find_scripts(names + max_std, paths + max_std);
+ num = find_scripts(names + max_std, paths + max_std, SCRIPT_MAX_NO - max_std,
+ SCRIPT_FULLPATH_LEN);
if (num < 0)
num = 0;
choice = ui__popup_menu(num + max_std, (char * const *)names);