]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 16 Oct 2018 17:02:21 +0000 (19:02 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 16 Oct 2018 17:02:21 +0000 (19:02 +0200)
added patches:
perf-tools-fix-snprint-warnings-for-gcc-8.patch

queue-4.14/perf-tools-fix-snprint-warnings-for-gcc-8.patch [new file with mode: 0644]
queue-4.14/series

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 (file)
index 0000000..bc9468c
--- /dev/null
@@ -0,0 +1,190 @@
+From 77f18153c080855e1c3fb520ca31a4e61530121d Mon Sep 17 00:00:00 2001
+From: Jiri Olsa <jolsa@kernel.org>
+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 <jolsa@kernel.org>
+
+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 <jolsa@kernel.org>
+Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
+Cc: David Ahern <dsahern@gmail.com>
+Cc: Josh Poimboeuf <jpoimboe@redhat.com>
+Cc: Namhyung Kim <namhyung@kernel.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
+Link: http://lkml.kernel.org/r/20180319082902.4518-1-jolsa@kernel.org
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Cc: Ignat Korchagin <ignat@cloudflare.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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) {
index 743b753842fd832834f7b3fdccb251061c513b57..474f9bd0458475daee6a3399519e5492914e258f 100644 (file)
@@ -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