2007-12-20 08:47:09

by Ivan Kokshaysky

[permalink] [raw]
Subject: [PATCH] mm: fix exit_mmap BUG() on a.out binary exit

The problem was introduced by commit "mm: variable length argument
support" (b6a2fea39318e43fee84fa7b0b90d68bed92d2ba)
as it didn't update fs/binfmt_aout.c like other binfmt's.

I noticed that on alpha when accidentally launched old OSF/1
Acrobat Reader binary. Obviously, other architectures are affected
as well.

Signed-off-by: Ivan Kokshaysky <[email protected]>
---
fs/binfmt_aout.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c
index e176d19..7596e1e 100644
--- a/fs/binfmt_aout.c
+++ b/fs/binfmt_aout.c
@@ -319,7 +319,6 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs)
current->mm->free_area_cache = current->mm->mmap_base;
current->mm->cached_hole_size = 0;

- current->mm->mmap = NULL;
compute_creds(bprm);
current->flags &= ~PF_FORKNOEXEC;
#ifdef __sparc__


2007-12-20 09:19:49

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH] mm: fix exit_mmap BUG() on a.out binary exit


On Thu, 2007-12-20 at 11:47 +0300, Ivan Kokshaysky wrote:
> The problem was introduced by commit "mm: variable length argument
> support" (b6a2fea39318e43fee84fa7b0b90d68bed92d2ba)
> as it didn't update fs/binfmt_aout.c like other binfmt's.
>
> I noticed that on alpha when accidentally launched old OSF/1
> Acrobat Reader binary. Obviously, other architectures are affected
> as well.
>
> Signed-off-by: Ivan Kokshaysky <[email protected]>

Acked-by: Peter Zijlstra <[email protected]>

.24 material I'd say.

> ---
> fs/binfmt_aout.c | 1 -
> 1 files changed, 0 insertions(+), 1 deletions(-)
>
> diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c
> index e176d19..7596e1e 100644
> --- a/fs/binfmt_aout.c
> +++ b/fs/binfmt_aout.c
> @@ -319,7 +319,6 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs)
> current->mm->free_area_cache = current->mm->mmap_base;
> current->mm->cached_hole_size = 0;
>
> - current->mm->mmap = NULL;
> compute_creds(bprm);
> current->flags &= ~PF_FORKNOEXEC;
> #ifdef __sparc__