On Tue, Jul 10, 2018 at 02:27:16PM -0400, William Cohen wrote: > Newer versions of GCC perform static analysis to determine whether > string truncation is possible with functions such as snprintf and > provide a warning if truncation could occur. The make for > jvmti_agent.c uses the compiler option that treats any compiler > warnings as compiler errors. For GCC-8.1.1 in Fedora 28 this causes > the build to fail. The return value of the snprint is now checked to > ensure snprintf produced a NULL-terminated string. If the string for > the path is invalid, the code does attempt to use the string.
hi, I posted fix for this recently: https://lore.kernel.org/lkml/20180702134202.17745-1-jo...@kernel.org/ it also covers the perf_regs.c, which was failing with gcc8 for me should be pulled in soon thanks, jirka > > Signed-off-by: William Cohen <wco...@redhat.com> > --- > tools/perf/jvmti/jvmti_agent.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/tools/perf/jvmti/jvmti_agent.c b/tools/perf/jvmti/jvmti_agent.c > index 0c6d1002b524..30f14eafe4b3 100644 > --- a/tools/perf/jvmti/jvmti_agent.c > +++ b/tools/perf/jvmti/jvmti_agent.c > @@ -227,7 +227,7 @@ void *jvmti_open(void) > { > char dump_path[PATH_MAX]; > struct jitheader header; > - int fd; > + int retlen, fd; > FILE *fp; > > init_arch_timestamp(); > @@ -249,7 +249,10 @@ void *jvmti_open(void) > /* > * jitdump file name > */ > - snprintf(dump_path, PATH_MAX, "%s/jit-%i.dump", jit_path, getpid()); > + retlen = snprintf(dump_path, PATH_MAX, "%s/jit-%i.dump", > + jit_path, getpid()); > + if (retlen <= 0 || ((int) sizeof(dump_path)) <= retlen) > + return NULL; > > fd = open(dump_path, O_CREAT|O_TRUNC|O_RDWR, 0666); > if (fd == -1) > -- > 2.17.1 >