• Arnaldo Carvalho de Melo's avatar
    perf machine: Use path__join() to compose a path instead of snprintf(dir, '/', filename) · 9d5f0c36
    Arnaldo Carvalho de Melo authored
    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: default avatarIan Rogers <irogers@google.com>
    Link: Link: https://lore.kernel.org/r/YebZKjwgfdOz0lAs@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    9d5f0c36
machine.c 78.2 KB