Patchwork linux-user: Assert stack used for auxvec, envp, argv

login
register
mail settings
Submitter James Hogan
Date March 25, 2014, 11:21 p.m.
Message ID <1395789710-29191-1-git-send-email-james.hogan@imgtec.com>
Download mbox | patch
Permalink /patch/333740/
State New
Headers show

Comments

James Hogan - March 25, 2014, 11:21 p.m.
Assert that the amount of stack space used for auxvec, envp & argv
exactly matches the amount allocated. This catches if DLINFO_ITEMS isn't
updated when another NEW_AUX_ENT is added.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Riku Voipio <riku.voipio@iki.fi>
Cc: Peter Maydell <peter.maydell@linaro.org>
---
This should be applied after "linux-user: Correct DLINFO_ITEMS" or the
assert will fail.

Tested with linux-user-test-0.3 before and after fixing DLINFO_ITEMS.
---
 linux-user/elfload.c | 2 ++
 1 file changed, 2 insertions(+)
Peter Maydell - May 1, 2014, 6:08 p.m.
Ping!

Riku -- do you have this in your tree now?

(I'm adding an aux entry for AT_HWCAP2 and I noticed the
assert wasn't firing :-))

thanks
-- PMM

On 25 March 2014 23:21, James Hogan <james.hogan@imgtec.com> wrote:
> Assert that the amount of stack space used for auxvec, envp & argv
> exactly matches the amount allocated. This catches if DLINFO_ITEMS isn't
> updated when another NEW_AUX_ENT is added.
>
> Signed-off-by: James Hogan <james.hogan@imgtec.com>
> Cc: Riku Voipio <riku.voipio@iki.fi>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> ---
> This should be applied after "linux-user: Correct DLINFO_ITEMS" or the
> assert will fail.
>
> Tested with linux-user-test-0.3 before and after fixing DLINFO_ITEMS.
> ---
>  linux-user/elfload.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/linux-user/elfload.c b/linux-user/elfload.c
> index d2380b6..ecf6f35 100644
> --- a/linux-user/elfload.c
> +++ b/linux-user/elfload.c
> @@ -1455,6 +1455,8 @@ static abi_ulong create_elf_tables(abi_ulong p, int argc, int envc,
>      info->auxv_len = sp_auxv - sp;
>
>      sp = loader_build_argptr(envc, argc, sp, p, 0);
> +    /* Check the right amount of stack was allocated for auxvec, envp & argv. */
> +    assert(sp_auxv - sp == size);
>      return sp;
>  }
>
> --
> 1.8.3.2
>
Riku Voipio - May 2, 2014, 10:03 a.m.
Hi,

I've rolled up a new patchset to:

https://git.linaro.org/people/riku.voipio/qemu.git/shortlog/refs/heads/linux-user-for-upstream

Should I submit this or wait for your AT_HWCAP2 patch?

Riku

On Thu, May 01, 2014 at 07:08:29PM +0100, Peter Maydell wrote:
> Ping!
> 
> Riku -- do you have this in your tree now?
> 
> (I'm adding an aux entry for AT_HWCAP2 and I noticed the
> assert wasn't firing :-))
> 
> thanks
> -- PMM
> 
> On 25 March 2014 23:21, James Hogan <james.hogan@imgtec.com> wrote:
> > Assert that the amount of stack space used for auxvec, envp & argv
> > exactly matches the amount allocated. This catches if DLINFO_ITEMS isn't
> > updated when another NEW_AUX_ENT is added.
> >
> > Signed-off-by: James Hogan <james.hogan@imgtec.com>
> > Cc: Riku Voipio <riku.voipio@iki.fi>
> > Cc: Peter Maydell <peter.maydell@linaro.org>
> > ---
> > This should be applied after "linux-user: Correct DLINFO_ITEMS" or the
> > assert will fail.
> >
> > Tested with linux-user-test-0.3 before and after fixing DLINFO_ITEMS.
> > ---
> >  linux-user/elfload.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/linux-user/elfload.c b/linux-user/elfload.c
> > index d2380b6..ecf6f35 100644
> > --- a/linux-user/elfload.c
> > +++ b/linux-user/elfload.c
> > @@ -1455,6 +1455,8 @@ static abi_ulong create_elf_tables(abi_ulong p, int argc, int envc,
> >      info->auxv_len = sp_auxv - sp;
> >
> >      sp = loader_build_argptr(envc, argc, sp, p, 0);
> > +    /* Check the right amount of stack was allocated for auxvec, envp & argv. */
> > +    assert(sp_auxv - sp == size);
> >      return sp;
> >  }
> >
> > --
> > 1.8.3.2
> >
Peter Maydell - May 2, 2014, 10:07 a.m.
On 2 May 2014 11:03, Riku Voipio <riku.voipio@iki.fi> wrote:
> Hi,
>
> I've rolled up a new patchset to:
>
> https://git.linaro.org/people/riku.voipio/qemu.git/shortlog/refs/heads/linux-user-for-upstream
>
> Should I submit this or wait for your AT_HWCAP2 patch?

I have the AT_HWCAP2 patch (and some other related fixes)
ready to send, I just need to do some testing. I'll try
to get that done and send the patches out in a couple of
hours.

thanks
-- PMM

Patch

diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index d2380b6..ecf6f35 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -1455,6 +1455,8 @@  static abi_ulong create_elf_tables(abi_ulong p, int argc, int envc,
     info->auxv_len = sp_auxv - sp;
 
     sp = loader_build_argptr(envc, argc, sp, p, 0);
+    /* Check the right amount of stack was allocated for auxvec, envp & argv. */
+    assert(sp_auxv - sp == size);
     return sp;
 }