Re: [PATCH] binfmt_misc: pass binfmt_misc P flag to the interpreter

From: Laurent Vivier
Date: Fri Mar 06 2020 - 07:07:51 EST


Le 06/03/2020 Ã 12:48, YunQiang Su a ÃcritÂ:
> Florian Weimer <fw@xxxxxxxxxxxxx> ä2020å3æ6æåä äå7:42åéï
>>
>> * YunQiang Su:
>>
>>> AT_* only has 32 slot and now. I was afraid that maybe we shouldn't take one.
>>> /* AT_* values 18 through 22 are reserved */
>>> 27,28,29,30 are not used now.
>>> Which should we use?
>>
>> Where does this limit of 32 tags come from? I don't see it from a
>> userspace perspective.
>
> Sorry it is my mistake: In linux/auxvec.h, I saw
>
> #define AT_RANDOM 25 /* address of 16 random bytes */
> #define AT_HWCAP2 26 /* extension of AT_HWCAP */
>
> #define AT_EXECFN 31 /* filename of program */
>
> The number jump to 31 from 26.
>
> It is my fault: in x86_64-linux-gnu/bits/auxv.h, the max number is 47 now.
>

Numbers starting from 32 are arch specific.
18 to 22 are also reserved (and used by some archs).
(linux/arch/*/include/uapi/asm/auxvec.h)

So there is only 4 entries available (27 to 30)
(linux/include/uapi/linux/auxvec.h)
Do we want to waste one more entry whereas we can use an unused one?

Thanks,
Laurent