svn commit: r358631 - in head: contrib/elftoolchain/readelf sys/sys usr.bin/elfctl

Ed Maste emaste at FreeBSD.org
Wed Mar 4 18:21:35 UTC 2020


Author: emaste
Date: Wed Mar  4 18:21:30 2020
New Revision: 358631
URL: https://svnweb.freebsd.org/changeset/base/358631

Log:
  Reserve WXNEEDED ELF feature control flag
  
  This will be used to tag binaries that require W+X mappings, in advance
  of the ability to prevent W^X in mmap/mprotect.
  
  There is still some discussion about the flag's name, but the ABI won't
  change even if the name does (as kib pointed out in the review).
  
  Reviewed by:	csjp, kib
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D23909

Modified:
  head/contrib/elftoolchain/readelf/readelf.c
  head/sys/sys/elf_common.h
  head/usr.bin/elfctl/elfctl.c

Modified: head/contrib/elftoolchain/readelf/readelf.c
==============================================================================
--- head/contrib/elftoolchain/readelf/readelf.c	Wed Mar  4 17:55:57 2020	(r358630)
+++ head/contrib/elftoolchain/readelf/readelf.c	Wed Mar  4 18:21:30 2020	(r358631)
@@ -3671,6 +3671,7 @@ static struct flag_desc note_feature_ctl_flags[] = {
 	{ NT_FREEBSD_FCTL_ASLR_DISABLE,		"ASLR_DISABLE" },
 	{ NT_FREEBSD_FCTL_PROTMAX_DISABLE,	"PROTMAX_DISABLE" },
 	{ NT_FREEBSD_FCTL_STKGAP_DISABLE,	"STKGAP_DISABLE" },
+	{ NT_FREEBSD_FCTL_WXNEEDED,		"WXNEEDED" },
 	{ 0, NULL }
 };
 

Modified: head/sys/sys/elf_common.h
==============================================================================
--- head/sys/sys/elf_common.h	Wed Mar  4 17:55:57 2020	(r358630)
+++ head/sys/sys/elf_common.h	Wed Mar  4 18:21:30 2020	(r358631)
@@ -790,6 +790,7 @@ typedef struct {
 #define	NT_FREEBSD_FCTL_ASLR_DISABLE	0x00000001
 #define	NT_FREEBSD_FCTL_PROTMAX_DISABLE	0x00000002
 #define	NT_FREEBSD_FCTL_STKGAP_DISABLE	0x00000004
+#define	NT_FREEBSD_FCTL_WXNEEDED	0x00000008
 
 /* Values for n_type.  Used in core files. */
 #define	NT_PRSTATUS	1	/* Process status. */

Modified: head/usr.bin/elfctl/elfctl.c
==============================================================================
--- head/usr.bin/elfctl/elfctl.c	Wed Mar  4 17:55:57 2020	(r358630)
+++ head/usr.bin/elfctl/elfctl.c	Wed Mar  4 18:21:30 2020	(r358631)
@@ -66,6 +66,7 @@ static struct ControlFeatures featurelist[] = {
 	{ "protmax",	NT_FREEBSD_FCTL_PROTMAX_DISABLE,
 	    "Disable implicit PROT_MAX" },
 	{ "stackgap",	NT_FREEBSD_FCTL_STKGAP_DISABLE, "Disable stack gap" },
+	{ "wxneeded",	NT_FREEBSD_FCTL_WXNEEDED, "Requires W+X mappings" },
 };
 
 static struct option long_opts[] = {


More information about the svn-src-head mailing list