Messages in this thread | | | Date | Tue, 24 Dec 2013 10:08:52 +0100 | Subject | Re: [PATCH] auxvec.h: account for AT_HWCAP2 in AT_VECTOR_SIZE_BASE | From | Ard Biesheuvel <> |
| |
On 24 December 2013 02:37, Linus Torvalds <torvalds@linux-foundation.org> wrote: > Please cc the guilty parties when sending patches like this. >
OK. [Added Al Viro as well as this affects fs/binfmt_elf.c]
> Also, just out of interest, please describe how this bug affected > things. Did we overflow the saved_auxv[] array, or what?
That is the risk, yes. AT_VECTOR_SIZE_BASE is supposed to be an upper bound for the number of generic auxv entries, and this is currently not the case. However, I am not aware of any actual problems that have been caused, and powerpc is indeed the only arch that defines ELF_HWCAP2 at the moment. But I spotted this when working on a series that adds ELF_HWCAP2 to ARM, and other archs may follow in the future.
> Also, how > does this change affect architectures that _don't_ have that > ELF_HWCAP2 thing, ie everything but powerpc? >
Some wasted space (two longs) in saved_auxv[] in mm_struct.
-- Ard.
> Acks, people? > > Linus > > On Mon, Dec 23, 2013 at 9:49 AM, Ard Biesheuvel > <ard.biesheuvel@linaro.org> wrote: >> Commit 2171364d1a92 (powerpc: Add HWCAP2 aux entry) introduced a new >> AT_ auxv entry type AT_HWCAP2 but failed to update AT_VECTOR_SIZE_BASE >> accordingly. >> >> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> >> Fixes: 2171364d1a92 (powerpc: Add HWCAP2 aux entry) >> Cc: stable@vger.kernel.org >> --- >> >> include/linux/auxvec.h | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/include/linux/auxvec.h b/include/linux/auxvec.h >> index 669fef5..3e0fbe4 100644 >> --- a/include/linux/auxvec.h >> +++ b/include/linux/auxvec.h >> @@ -3,6 +3,6 @@ >> >> #include <uapi/linux/auxvec.h> >> >> -#define AT_VECTOR_SIZE_BASE 19 /* NEW_AUX_ENT entries in auxiliary table */ >> +#define AT_VECTOR_SIZE_BASE 20 /* NEW_AUX_ENT entries in auxiliary table */ >> /* number of "#define AT_.*" above, minus {AT_NULL, AT_IGNORE, AT_NOTELF} */ >> #endif /* _LINUX_AUXVEC_H */ >> -- >> 1.8.3.2 >
| |