>this is broken and does cause an EFAULT on x86 as well (you should
>take the warning from gcc about the second argument of execve serious).
Thanks, you are right.
>Try:
>char *e2BIG[ARG_MAX+1];
>char *envList[]={NULL};>
>int main(void)
>{> int ret,ind;
>
> for(ind = 0; ind < ARG_MAX+1; ind++)
> e2BIG[ind] = strdup("helloword");
>
>
It wroks on X86 and other Archs.
>
>
>And it looks like the ARG_MAX limit is bigger than my installed glibc
>thinks, because it works at least on x86. When I increase the array two
>2 * ARG_MAX I'll get the wanted E2BIG.
Yes, on MIPS we need to increase the ARM_MAX to 2*ARG_MAX to get E2BIG.
Thanks,
Halesh