binfmt_elf_fdpic: fix execfd build regression
diff mbox series

Message ID 20200527134911.1024114-1-arnd@arndb.de
State New
Headers show
Series
  • binfmt_elf_fdpic: fix execfd build regression
Related show

Commit Message

Arnd Bergmann May 27, 2020, 1:49 p.m. UTC
The change to bprm->have_execfd was incomplete, leading
to a build failure:

fs/binfmt_elf_fdpic.c: In function 'create_elf_fdpic_tables':
fs/binfmt_elf_fdpic.c:591:27: error: 'BINPRM_FLAGS_EXECFD' undeclared

Change the last user of BINPRM_FLAGS_EXECFD in a corresponding
way.

Reported-by: Valdis Klētnieks <valdis.kletnieks@vt.edu>
Fixes: b8a61c9e7b4a ("exec: Generic execfd support")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
I have no idea whether this is right, I only looked briefly at
the commit that introduced the problem.
---
 fs/binfmt_elf_fdpic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Eric W. Biederman May 27, 2020, 10:08 p.m. UTC | #1
Arnd Bergmann <arnd@arndb.de> writes:

> The change to bprm->have_execfd was incomplete, leading
> to a build failure:
>
> fs/binfmt_elf_fdpic.c: In function 'create_elf_fdpic_tables':
> fs/binfmt_elf_fdpic.c:591:27: error: 'BINPRM_FLAGS_EXECFD' undeclared
>
> Change the last user of BINPRM_FLAGS_EXECFD in a corresponding
> way.
>
> Reported-by: Valdis Klētnieks <valdis.kletnieks@vt.edu>
> Fixes: b8a61c9e7b4a ("exec: Generic execfd support")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> I have no idea whether this is right, I only looked briefly at
> the commit that introduced the problem.

It is correct and my fault.

Is there an easy to build-test configuration that includes
binfmt_elf_fdpic?

I have this sense that it might be smart to unify binfmt_elf
and binftm_elf_fdpic to the extent possible, and that will take build
tests.

Eric



> ---
>  fs/binfmt_elf_fdpic.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
> index bba3ad555b94..aaf332d32326 100644
> --- a/fs/binfmt_elf_fdpic.c
> +++ b/fs/binfmt_elf_fdpic.c
> @@ -588,7 +588,7 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm,
>  	nitems = 1 + DLINFO_ITEMS + (k_platform ? 1 : 0) +
>  		(k_base_platform ? 1 : 0) + AT_VECTOR_SIZE_ARCH;
>  
> -	if (bprm->interp_flags & BINPRM_FLAGS_EXECFD)
> +	if (bprm->have_execfd)
>  		nitems++;
>  
>  	csp = sp;
Arnd Bergmann May 27, 2020, 10:29 p.m. UTC | #2
On Thu, May 28, 2020 at 12:12 AM Eric W. Biederman
<ebiederm@xmission.com> wrote:
>
> Arnd Bergmann <arnd@arndb.de> writes:
>
> > The change to bprm->have_execfd was incomplete, leading
> > to a build failure:
> >
> > fs/binfmt_elf_fdpic.c: In function 'create_elf_fdpic_tables':
> > fs/binfmt_elf_fdpic.c:591:27: error: 'BINPRM_FLAGS_EXECFD' undeclared
> >
> > Change the last user of BINPRM_FLAGS_EXECFD in a corresponding
> > way.
> >
> > Reported-by: Valdis Klētnieks <valdis.kletnieks@vt.edu>
> > Fixes: b8a61c9e7b4a ("exec: Generic execfd support")
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > ---
> > I have no idea whether this is right, I only looked briefly at
> > the commit that introduced the problem.
>
> It is correct and my fault.
>
> Is there an easy to build-test configuration that includes
> binfmt_elf_fdpic?
>
> I have this sense that it might be smart to unify binfmt_elf
> and binftm_elf_fdpic to the extent possible, and that will take build
> tests.

It should be included in an ARM allmodconfig. Nicolas Pitr did the
work to support ELF_FDPIC on ARM with MMU a while ago, but
I'm not sure what it would take to make this architecture independent
or support build-testing on x86.

       Arnd
Valdis Kl ē tnieks May 27, 2020, 10:35 p.m. UTC | #3
On Wed, 27 May 2020 17:08:57 -0500, Eric W. Biederman said:

> Is there an easy to build-test configuration that includes
> binfmt_elf_fdpic?

I tripped over it with a 'make ARM=arch allmodconfig', but any
config that includes CONFIG_BINFMT_ELF_FDPIC should suffice.
I haven't checked the 'depends' for that variable though...

> I have this sense that it might be smart to unify binfmt_elf
> and binftm_elf_fdpic to the extent possible, and that will take build
> tests.

Bring it on! :)

Patch
diff mbox series

diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index bba3ad555b94..aaf332d32326 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -588,7 +588,7 @@  static int create_elf_fdpic_tables(struct linux_binprm *bprm,
 	nitems = 1 + DLINFO_ITEMS + (k_platform ? 1 : 0) +
 		(k_base_platform ? 1 : 0) + AT_VECTOR_SIZE_ARCH;
 
-	if (bprm->interp_flags & BINPRM_FLAGS_EXECFD)
+	if (bprm->have_execfd)
 		nitems++;
 
 	csp = sp;