I'm attempting to build the m4 package. During this aclocal is invoked which in
turn invokes autom4te. There are quite a lot of parameters and envvars being
passed and the execve fails with EFAULT. Tracing shows me that the following
code is responsible in $SRC/uts/common/os/exec:
/*
* Add a string to the stack.
*/
static int
stk_add(uarg_t *args, const char *sp, enum uio_seg segflg)
{
int error;
size_t len;
if (STK_AVAIL(args) < sizeof (int))
return (E2BIG);
*--args->stk_offp = args->stk_strp - args->stk_base;
if (segflg == UIO_USERSPACE) {
error = copyinstr(sp, args->stk_strp, STK_AVAIL(args), &len);
if (error != 0)
return (error);
:
:
}
The failure occurs when the STK_AVAIL(args) in the copyinstr() call resolves to
a negative number (in my case 0xfffffffb). Should a STK_AVAIL(args) be done
immediately after the *--args->... so it can return E2BIG and thus allow the
stack area to be doubled?
Neale
This message posted from opensolaris.org
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code