]> git.baikalelectronics.ru Git - kernel.git/commit
perf machine: Use path__join() to compose a path instead of snprintf(dir, '/', filename)
authorArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 18 Jan 2022 12:02:43 +0000 (09:02 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 19 Jan 2022 16:54:57 +0000 (13:54 -0300)
commit950efc8300307d017aeedd5cacbeaa6d22e1d27b
treeaaad515f8dbbf4a593f3755dbcd2bde2a0f8e0fb
parent69c956d27b678e13cd573c08e93dba06ae3f4176
perf machine: Use path__join() to compose a path instead of snprintf(dir, '/', filename)

Its more intention revealing, and if we're interested in the odd cases
where this may end up truncating we can do debug checks at one
centralized place.

Motivation, of all the container builds, fedora rawhide started
complaining of:

  util/machine.c: In function ‘machine__create_modules’:
  util/machine.c:1419:50: error: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 4095 [-Werror=format-truncation=]
   1419 |                 snprintf(path, sizeof(path), "%s/%s", dir_name, dent->d_name);
        |                                                  ^~
  In file included from /usr/include/stdio.h:894,
                   from util/branch.h:9,
                   from util/callchain.h:8,
                   from util/machine.c:7:
  In function ‘snprintf’,
      inlined from ‘maps__set_modules_path_dir’ at util/machine.c:1419:3,
      inlined from ‘machine__set_modules_path’ at util/machine.c:1473:9,
      inlined from ‘machine__create_modules’ at util/machine.c:1519:7:
  /usr/include/bits/stdio2.h:71:10: note: ‘__builtin___snprintf_chk’ output between 2 and 4352 bytes into a destination of size 4096

There are other places where we should use path__join(), but lets get rid of
this one first.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Acked-by: Ian Rogers <irogers@google.com>
Link: https://lore.kernel.org/r/YebZKjwgfdOz0lAs@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/machine.c