Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Oct 2011 14:35:15 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Kostik Belousov <kostikbel@gmail.com>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, Marcel Moolenaar <marcel@freebsd.org>, src-committers@freebsd.org, John Baldwin <jhb@freebsd.org>
Subject:   Re: svn commit: r226343 - head/sys/vm
Message-ID:  <93156F0C-A80A-4E60-8873-E6269D543973@xcllnt.net>
In-Reply-To: <20111014182443.GP1511@deviant.kiev.zoral.com.ua>
References:  <201110131620.p9DGKAM2022926@svn.freebsd.org> <20111013190943.GM1511@deviant.kiev.zoral.com.ua> <D6F3D623-23A5-4147-A439-746AD670DE14@xcllnt.net> <201110131707.14466.jhb@freebsd.org> <CC78FD86-8B14-49EE-A2AA-4B1EE186A4BB@xcllnt.net> <20111013225030.GA75054@zim.MIT.EDU> <20111014182443.GP1511@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help

On Oct 14, 2011, at 11:24 AM, Kostik Belousov wrote:
>>>=20
> After more thought about the issue, I do not agree with you.
> Elf specification says about the PF_R flag that only read permission
> for the memory image of the segment is required, but read and execute
> is allowed.

The ELF specification does not contain CPU specifics. Those are
always covered by processor supplements. Since this is very i386
specific behaviour we're talking about, it's a non sequitur to
use the generic ELF specification to argue a point in this
respect.


> I want to commit the following refinement:

The patch is good.

> diff --git a/sys/kern/imgact_elf.c b/sys/kern/imgact_elf.c
> index 669c652..9970386 100644
> --- a/sys/kern/imgact_elf.c
> +++ b/sys/kern/imgact_elf.c
> @@ -118,11 +118,24 @@ static int elf_legacy_coredump =3D 0;
> SYSCTL_INT(_debug, OID_AUTO, __elfN(legacy_coredump), CTLFLAG_RW,=20
>     &elf_legacy_coredump, 0, "");
>=20
> -static int __elfN(nxstack) =3D 0;
> +static int __elfN(nxstack) =3D
> +#if defined(__amd64__) || defined(__powerpc__) /* both 64 and 32 bit =
*/
> +	1;
> +#else
> +	0;
> +#endif
> SYSCTL_INT(__CONCAT(_kern_elf, __ELF_WORD_SIZE), OID_AUTO,
>     nxstack, CTLFLAG_RW, &__elfN(nxstack), 0,
>     __XSTRING(__CONCAT(ELF, __ELF_WORD_SIZE)) ": enable non-executable =
stack");

Please do not commit this change with the rest. It's
not to the point. In fact, if you're changing it to
the above, please add ia64 to the list as well.

--=20
Marcel Moolenaar
marcel@xcllnt.net





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?93156F0C-A80A-4E60-8873-E6269D543973>