* [PATCH linux-5.15.y v2] perf machine: Use path__join() to compose a path instead of snprintf(dir, '/', filename)
@ 2022-09-12 8:15 Jisheng Zhang
2022-09-12 14:40 ` Greg Kroah-Hartman
0 siblings, 1 reply; 3+ messages in thread
From: Jisheng Zhang @ 2022-09-12 8:15 UTC (permalink / raw)
To: Greg Kroah-Hartman, stable
Cc: Arnaldo Carvalho de Melo, Adrian Hunter, Ian Rogers, Jiri Olsa,
Namhyung Kim
From: Arnaldo Carvalho de Melo <acme@redhat.com>
commit 9d5f0c36438eeae7566ca383b2b673179e3cc613 upstream.
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: Link: https://lore.kernel.org/r/YebZKjwgfdOz0lAs@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
Since v1:
- add commit id in upstream.
- add linux-5.15.y, maybe we also need this for other long term stable
tree.
tools/perf/util/machine.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index 44e40bad0e33..55a041329990 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -16,6 +16,7 @@
#include "map_symbol.h"
#include "branch.h"
#include "mem-events.h"
+#include "path.h"
#include "srcline.h"
#include "symbol.h"
#include "sort.h"
@@ -1407,7 +1408,7 @@ static int maps__set_modules_path_dir(struct maps *maps, const char *dir_name, i
struct stat st;
/*sshfs might return bad dent->d_type, so we have to stat*/
- snprintf(path, sizeof(path), "%s/%s", dir_name, dent->d_name);
+ path__join(path, sizeof(path), dir_name, dent->d_name);
if (stat(path, &st))
continue;
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH linux-5.15.y v2] perf machine: Use path__join() to compose a path instead of snprintf(dir, '/', filename)
2022-09-12 8:15 [PATCH linux-5.15.y v2] perf machine: Use path__join() to compose a path instead of snprintf(dir, '/', filename) Jisheng Zhang
@ 2022-09-12 14:40 ` Greg Kroah-Hartman
2022-09-13 0:52 ` Jisheng Zhang
0 siblings, 1 reply; 3+ messages in thread
From: Greg Kroah-Hartman @ 2022-09-12 14:40 UTC (permalink / raw)
To: Jisheng Zhang
Cc: stable, Arnaldo Carvalho de Melo, Adrian Hunter, Ian Rogers,
Jiri Olsa, Namhyung Kim
On Mon, Sep 12, 2022 at 04:15:22PM +0800, Jisheng Zhang wrote:
> From: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> commit 9d5f0c36438eeae7566ca383b2b673179e3cc613 upstream.
>
> 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: Link: https://lore.kernel.org/r/YebZKjwgfdOz0lAs@kernel.org
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
As you are forwarding on this commit, you too need to sign-off on it.
> ---
>
> Since v1:
> - add commit id in upstream.
> - add linux-5.15.y, maybe we also need this for other long term stable
> tree.
Why is this needed in 5.15?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH linux-5.15.y v2] perf machine: Use path__join() to compose a path instead of snprintf(dir, '/', filename)
2022-09-12 14:40 ` Greg Kroah-Hartman
@ 2022-09-13 0:52 ` Jisheng Zhang
0 siblings, 0 replies; 3+ messages in thread
From: Jisheng Zhang @ 2022-09-13 0:52 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: stable, Arnaldo Carvalho de Melo, Adrian Hunter, Ian Rogers,
Jiri Olsa, Namhyung Kim
On Mon, Sep 12, 2022 at 04:40:22PM +0200, Greg Kroah-Hartman wrote:
> On Mon, Sep 12, 2022 at 04:15:22PM +0800, Jisheng Zhang wrote:
> > From: Arnaldo Carvalho de Melo <acme@redhat.com>
> >
> > commit 9d5f0c36438eeae7566ca383b2b673179e3cc613 upstream.
> >
> > 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: Link: https://lore.kernel.org/r/YebZKjwgfdOz0lAs@kernel.org
> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> As you are forwarding on this commit, you too need to sign-off on it.
Thanks for the information.
>
> > ---
> >
> > Since v1:
> > - add commit id in upstream.
> > - add linux-5.15.y, maybe we also need this for other long term stable
> > tree.
>
> Why is this needed in 5.15?
Building linux-5.15.y perf with gcc-12 will emit the same error as the
commit msg says.
Thanks
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-09-13 1:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-12 8:15 [PATCH linux-5.15.y v2] perf machine: Use path__join() to compose a path instead of snprintf(dir, '/', filename) Jisheng Zhang
2022-09-12 14:40 ` Greg Kroah-Hartman
2022-09-13 0:52 ` Jisheng Zhang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox