From: Greg Kroah-Hartman Date: Tue, 16 Oct 2018 17:02:21 +0000 (+0200) Subject: 4.14-stable patches X-Git-Tag: v4.9.134~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=485055982936b4d4bfaf3501104259e377008e05;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: perf-tools-fix-snprint-warnings-for-gcc-8.patch --- diff --git a/queue-4.14/perf-tools-fix-snprint-warnings-for-gcc-8.patch b/queue-4.14/perf-tools-fix-snprint-warnings-for-gcc-8.patch new file mode 100644 index 00000000000..bc9468c60d1 --- /dev/null +++ b/queue-4.14/perf-tools-fix-snprint-warnings-for-gcc-8.patch @@ -0,0 +1,190 @@ +From 77f18153c080855e1c3fb520ca31a4e61530121d Mon Sep 17 00:00:00 2001 +From: Jiri Olsa +Date: Mon, 19 Mar 2018 09:29:01 +0100 +Subject: perf tools: Fix snprint warnings for gcc 8 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Jiri Olsa + +commit 77f18153c080855e1c3fb520ca31a4e61530121d upstream. + +With gcc 8 we get new set of snprintf() warnings that breaks the +compilation, one example: + + tests/mem.c: In function ‘check’: + tests/mem.c:19:48: error: ‘%s’ directive output may be truncated writing \ + up to 99 bytes into a region of size 89 [-Werror=format-truncation=] + snprintf(failure, sizeof failure, "unexpected %s", out); + +The gcc docs says: + + To avoid the warning either use a bigger buffer or handle the + function's return value which indicates whether or not its output + has been truncated. + +Given that all these warnings are harmless, because the code either +properly fails due to uncomplete file path or we don't care for +truncated output at all, I'm changing all those snprintf() calls to +scnprintf(), which actually 'checks' for the snprint return value so the +gcc stays silent. + +Signed-off-by: Jiri Olsa +Cc: Alexander Shishkin +Cc: David Ahern +Cc: Josh Poimboeuf +Cc: Namhyung Kim +Cc: Peter Zijlstra +Cc: Sergey Senozhatsky +Link: http://lkml.kernel.org/r/20180319082902.4518-1-jolsa@kernel.org +Signed-off-by: Arnaldo Carvalho de Melo +Cc: Ignat Korchagin +Signed-off-by: Greg Kroah-Hartman + +--- + tools/perf/builtin-script.c | 22 +++++++++++----------- + tools/perf/tests/attr.c | 4 ++-- + tools/perf/tests/mem.c | 2 +- + tools/perf/tests/pmu.c | 2 +- + tools/perf/util/cgroup.c | 2 +- + tools/perf/util/parse-events.c | 4 ++-- + tools/perf/util/pmu.c | 2 +- + 7 files changed, 19 insertions(+), 19 deletions(-) + +--- a/tools/perf/builtin-script.c ++++ b/tools/perf/builtin-script.c +@@ -2304,8 +2304,8 @@ static int list_available_scripts(const + } + + for_each_lang(scripts_path, scripts_dir, lang_dirent) { +- snprintf(lang_path, MAXPATHLEN, "%s/%s/bin", scripts_path, +- lang_dirent->d_name); ++ scnprintf(lang_path, MAXPATHLEN, "%s/%s/bin", scripts_path, ++ lang_dirent->d_name); + lang_dir = opendir(lang_path); + if (!lang_dir) + continue; +@@ -2314,8 +2314,8 @@ static int list_available_scripts(const + script_root = get_script_root(script_dirent, REPORT_SUFFIX); + if (script_root) { + desc = script_desc__findnew(script_root); +- snprintf(script_path, MAXPATHLEN, "%s/%s", +- lang_path, script_dirent->d_name); ++ scnprintf(script_path, MAXPATHLEN, "%s/%s", ++ lang_path, script_dirent->d_name); + read_script_info(desc, script_path); + free(script_root); + } +@@ -2351,7 +2351,7 @@ static int check_ev_match(char *dir_name + int match, len; + FILE *fp; + +- sprintf(filename, "%s/bin/%s-record", dir_name, scriptname); ++ scnprintf(filename, MAXPATHLEN, "%s/bin/%s-record", dir_name, scriptname); + + fp = fopen(filename, "r"); + if (!fp) +@@ -2427,8 +2427,8 @@ int find_scripts(char **scripts_array, c + } + + for_each_lang(scripts_path, scripts_dir, lang_dirent) { +- snprintf(lang_path, MAXPATHLEN, "%s/%s", scripts_path, +- lang_dirent->d_name); ++ scnprintf(lang_path, MAXPATHLEN, "%s/%s", scripts_path, ++ lang_dirent->d_name); + #ifdef NO_LIBPERL + if (strstr(lang_path, "perl")) + continue; +@@ -2483,8 +2483,8 @@ static char *get_script_path(const char + return NULL; + + for_each_lang(scripts_path, scripts_dir, lang_dirent) { +- snprintf(lang_path, MAXPATHLEN, "%s/%s/bin", scripts_path, +- lang_dirent->d_name); ++ scnprintf(lang_path, MAXPATHLEN, "%s/%s/bin", scripts_path, ++ lang_dirent->d_name); + lang_dir = opendir(lang_path); + if (!lang_dir) + continue; +@@ -2495,8 +2495,8 @@ static char *get_script_path(const char + free(__script_root); + closedir(lang_dir); + closedir(scripts_dir); +- snprintf(script_path, MAXPATHLEN, "%s/%s", +- lang_path, script_dirent->d_name); ++ scnprintf(script_path, MAXPATHLEN, "%s/%s", ++ lang_path, script_dirent->d_name); + return strdup(script_path); + } + free(__script_root); +--- a/tools/perf/tests/attr.c ++++ b/tools/perf/tests/attr.c +@@ -164,8 +164,8 @@ static int run_dir(const char *d, const + if (verbose > 0) + vcnt++; + +- snprintf(cmd, 3*PATH_MAX, PYTHON " %s/attr.py -d %s/attr/ -p %s %.*s", +- d, d, perf, vcnt, v); ++ scnprintf(cmd, 3*PATH_MAX, PYTHON " %s/attr.py -d %s/attr/ -p %s %.*s", ++ d, d, perf, vcnt, v); + + return system(cmd) ? TEST_FAIL : TEST_OK; + } +--- a/tools/perf/tests/mem.c ++++ b/tools/perf/tests/mem.c +@@ -16,7 +16,7 @@ static int check(union perf_mem_data_src + + n = perf_mem__snp_scnprintf(out, sizeof out, &mi); + n += perf_mem__lvl_scnprintf(out + n, sizeof out - n, &mi); +- snprintf(failure, sizeof failure, "unexpected %s", out); ++ scnprintf(failure, sizeof failure, "unexpected %s", out); + TEST_ASSERT_VAL(failure, !strcmp(string, out)); + return 0; + } +--- a/tools/perf/tests/pmu.c ++++ b/tools/perf/tests/pmu.c +@@ -98,7 +98,7 @@ static char *test_format_dir_get(void) + struct test_format *format = &test_formats[i]; + FILE *file; + +- snprintf(name, PATH_MAX, "%s/%s", dir, format->name); ++ scnprintf(name, PATH_MAX, "%s/%s", dir, format->name); + + file = fopen(name, "w"); + if (!file) +--- a/tools/perf/util/cgroup.c ++++ b/tools/perf/util/cgroup.c +@@ -78,7 +78,7 @@ static int open_cgroup(char *name) + if (cgroupfs_find_mountpoint(mnt, PATH_MAX + 1)) + return -1; + +- snprintf(path, PATH_MAX, "%s/%s", mnt, name); ++ scnprintf(path, PATH_MAX, "%s/%s", mnt, name); + + fd = open(path, O_RDONLY); + if (fd == -1) +--- a/tools/perf/util/parse-events.c ++++ b/tools/perf/util/parse-events.c +@@ -202,8 +202,8 @@ struct tracepoint_path *tracepoint_id_to + + for_each_event(sys_dirent, evt_dir, evt_dirent) { + +- snprintf(evt_path, MAXPATHLEN, "%s/%s/id", dir_path, +- evt_dirent->d_name); ++ scnprintf(evt_path, MAXPATHLEN, "%s/%s/id", dir_path, ++ evt_dirent->d_name); + fd = open(evt_path, O_RDONLY); + if (fd < 0) + continue; +--- a/tools/perf/util/pmu.c ++++ b/tools/perf/util/pmu.c +@@ -349,7 +349,7 @@ static int pmu_aliases_parse(char *dir, + if (pmu_alias_info_file(name)) + continue; + +- snprintf(path, PATH_MAX, "%s/%s", dir, name); ++ scnprintf(path, PATH_MAX, "%s/%s", dir, name); + + file = fopen(path, "r"); + if (!file) { diff --git a/queue-4.14/series b/queue-4.14/series index 743b753842f..474f9bd0458 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -106,3 +106,4 @@ arm-oabi-compat-copy-semops-using-__copy_from_user.patch arm-use-__inttype-in-get_user.patch arm-spectre-v1-use-get_user-for-__get_user.patch arm-spectre-v1-mitigate-user-accesses.patch +perf-tools-fix-snprint-warnings-for-gcc-8.patch