2018-10-19 02:07:08

by Hongxu Jia

[permalink] [raw]
Subject: [PATCH V2] perf arm64: Fix generate system call table failed with /tmp mounted with noexec

When /tmp is mounted with noexec, mksyscalltbl fails.
[snip]
|perf-1.0/tools/perf/arch/arm64/entry/syscalls//mksyscalltbl:
/tmp/create-table-6VGPSt: Permission denied
[snip]

Add variable TMPDIR as prefix dir of the temporary file, if it is set,
replace default /tmp

Remove extra slash from `syscalls//mksyscalltbl'

Fixes: 2b5882435606 ("perf arm64: Generate system call table from asm/unistd.h")

Signed-off-by: Hongxu Jia <[email protected]>
---
tools/perf/arch/arm64/Makefile | 2 +-
tools/perf/arch/arm64/entry/syscalls/mksyscalltbl | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/perf/arch/arm64/Makefile b/tools/perf/arch/arm64/Makefile
index dbef716..bc2a284 100644
--- a/tools/perf/arch/arm64/Makefile
+++ b/tools/perf/arch/arm64/Makefile
@@ -13,7 +13,7 @@ out := $(OUTPUT)arch/arm64/include/generated/asm
header := $(out)/syscalls.c
incpath := $(srctree)/tools
sysdef := $(srctree)/tools/arch/arm64/include/uapi/asm/unistd.h
-sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls/
+sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls
systbl := $(sysprf)/mksyscalltbl

# Create output directory if not already present
diff --git a/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl b/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
index 2dbb8cad..c88fd32 100755
--- a/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
+++ b/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
@@ -23,7 +23,7 @@ create_table_from_c()
{
local sc nr last_sc

- create_table_exe=`mktemp /tmp/create-table-XXXXXX`
+ create_table_exe=`mktemp ${TMPDIR:-/tmp}/create-table-XXXXXX`

{

--
2.7.4



2018-10-19 15:30:36

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH V2] perf arm64: Fix generate system call table failed with /tmp mounted with noexec

Em Fri, Oct 19, 2018 at 11:22:38AM -0400, S?bastien Boisvert escreveu:
>
>
> On 2018-10-18 10:16 p.m., Hongxu Jia wrote:
> > When /tmp is mounted with noexec, mksyscalltbl fails.
> > [snip]
> > |perf-1.0/tools/perf/arch/arm64/entry/syscalls//mksyscalltbl:
> > /tmp/create-table-6VGPSt: Permission denied
> > [snip]
> >
> > Add variable TMPDIR as prefix dir of the temporary file, if it is set,
> > replace default /tmp
> >
> > Remove extra slash from `syscalls//mksyscalltbl'
> >
> > Fixes: 2b5882435606 ("perf arm64: Generate system call table from asm/unistd.h")
> >
> > Signed-off-by: Hongxu Jia <[email protected]>
> > ---
> > tools/perf/arch/arm64/Makefile | 2 +-
> > tools/perf/arch/arm64/entry/syscalls/mksyscalltbl | 2 +-
> > 2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/tools/perf/arch/arm64/Makefile b/tools/perf/arch/arm64/Makefile
> > index dbef716..bc2a284 100644
> > --- a/tools/perf/arch/arm64/Makefile
> > +++ b/tools/perf/arch/arm64/Makefile
> > @@ -13,7 +13,7 @@ out := $(OUTPUT)arch/arm64/include/generated/asm
> > header := $(out)/syscalls.c
> > incpath := $(srctree)/tools
> > sysdef := $(srctree)/tools/arch/arm64/include/uapi/asm/unistd.h
> > -sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls/
> > +sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls
>
> Should this appear in different patch, since it is unrelated to adding TMPDIR support ?

Exactly.

So, to move forward, just send a new patch specifically for this part,
i.e. the removal of the harmless but unneeded extra slash, the other
part I already took care of.

- Arnaldo

> Thanks
>
> > systbl := $(sysprf)/mksyscalltbl
> >
> > # Create output directory if not already present
> > diff --git a/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl b/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
> > index 2dbb8cad..c88fd32 100755
> > --- a/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
> > +++ b/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
> > @@ -23,7 +23,7 @@ create_table_from_c()
> > {
> > local sc nr last_sc
> >
> > - create_table_exe=`mktemp /tmp/create-table-XXXXXX`
> > + create_table_exe=`mktemp ${TMPDIR:-/tmp}/create-table-XXXXXX`
> >
> > {
> >
> >

2018-10-19 15:33:20

by Sebastien Boisvert

[permalink] [raw]
Subject: Re: [PATCH V2] perf arm64: Fix generate system call table failed with /tmp mounted with noexec



On 2018-10-18 10:16 p.m., Hongxu Jia wrote:
> When /tmp is mounted with noexec, mksyscalltbl fails.
> [snip]
> |perf-1.0/tools/perf/arch/arm64/entry/syscalls//mksyscalltbl:
> /tmp/create-table-6VGPSt: Permission denied
> [snip]
>
> Add variable TMPDIR as prefix dir of the temporary file, if it is set,
> replace default /tmp
>
> Remove extra slash from `syscalls//mksyscalltbl'
>
> Fixes: 2b5882435606 ("perf arm64: Generate system call table from asm/unistd.h")
>
> Signed-off-by: Hongxu Jia <[email protected]>
> ---
> tools/perf/arch/arm64/Makefile | 2 +-
> tools/perf/arch/arm64/entry/syscalls/mksyscalltbl | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/arch/arm64/Makefile b/tools/perf/arch/arm64/Makefile
> index dbef716..bc2a284 100644
> --- a/tools/perf/arch/arm64/Makefile
> +++ b/tools/perf/arch/arm64/Makefile
> @@ -13,7 +13,7 @@ out := $(OUTPUT)arch/arm64/include/generated/asm
> header := $(out)/syscalls.c
> incpath := $(srctree)/tools
> sysdef := $(srctree)/tools/arch/arm64/include/uapi/asm/unistd.h
> -sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls/
> +sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls

Should this appear in different patch, since it is unrelated to adding TMPDIR support ?

Thanks

> systbl := $(sysprf)/mksyscalltbl
>
> # Create output directory if not already present
> diff --git a/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl b/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
> index 2dbb8cad..c88fd32 100755
> --- a/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
> +++ b/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
> @@ -23,7 +23,7 @@ create_table_from_c()
> {
> local sc nr last_sc
>
> - create_table_exe=`mktemp /tmp/create-table-XXXXXX`
> + create_table_exe=`mktemp ${TMPDIR:-/tmp}/create-table-XXXXXX`
>
> {
>
>

2018-10-19 15:41:17

by Hongxu Jia

[permalink] [raw]
Subject: Re: [PATCH V2] perf arm64: Fix generate system call table failed with /tmp mounted with noexec

On 2018/10/19 下午11:30, Arnaldo Carvalho de Melo wrote:
> Exactly.
>
> So, to move forward, just send a new patch specifically for this part,
> i.e. the removal of the harmless but unneeded extra slash, the other
> part I already took care of.

Got it, I will send a new patch for the removal of the harmless

Thank a huge for all your guys to help me to improve commit message.

//Hongxu


>
> - Arnaldo
>