From bbce18b8d1f572012c40e77c9d0a6dfd28cd25f3 Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Tue, 20 Nov 2018 20:59:49 +0000 Subject: [PATCH] Add NT_FREEBSD_FEATURE_CTL ELF note to csu This note will be used to allow binaries to opt out of, or in to, upcoming vulnerability mitigation and other features. It is not yet connected but being added now to facilitate testing and ensure compatibility with existing kernels and tools. Reviewed by: brooks, jhb, kib, markj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D17438 --- lib/csu/common/crtbrand.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/csu/common/crtbrand.c b/lib/csu/common/crtbrand.c index c407de435b96..f8fb0024db24 100644 --- a/lib/csu/common/crtbrand.c +++ b/lib/csu/common/crtbrand.c @@ -67,3 +67,18 @@ static const struct { .name = NOTE_FREEBSD_VENDOR, .desc = __FreeBSD_version }; + +static const struct { + int32_t namesz; + int32_t descsz; + int32_t type; + char name[sizeof(NOTE_FREEBSD_VENDOR)]; + uint32_t desc[1]; +} crt_feature_ctl __attribute__ ((section (NOTE_SECTION), + aligned(4))) __used = { + .namesz = sizeof(NOTE_FREEBSD_VENDOR), + .descsz = sizeof(uint32_t), + .type = NT_FREEBSD_FEATURE_CTL, + .name = NOTE_FREEBSD_VENDOR, + .desc = { 0 } +};