diff options
author | Florian Weimer <fweimer@redhat.com> | 2022-10-18 17:00:07 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2022-10-18 17:03:55 +0200 |
commit | 88f4b6929c26f9240a4b0b7dcc62922f02544a09 (patch) | |
tree | 72acb4a359d3ec56729a910386bd1a002bd69e3c /libio | |
parent | 246f37d6b1c4c6c0a6365df8783e62e3adf208e8 (diff) | |
download | glibc-88f4b6929c26f9240a4b0b7dcc62922f02544a09.tar.gz glibc-88f4b6929c26f9240a4b0b7dcc62922f02544a09.tar.xz glibc-88f4b6929c26f9240a4b0b7dcc62922f02544a09.zip |
Introduce <pointer_guard.h>, extracted from <sysdep.h>
This allows us to define a generic no-op version of PTR_MANGLE and PTR_DEMANGLE. In the future, we can use PTR_MANGLE and PTR_DEMANGLE unconditionally in C sources, avoiding an unintended loss of hardening due to missing include files or unlucky header inclusion ordering. In i386 and x86_64, we can avoid a <tls.h> dependency in the C code by using the computed constant from <tcb-offsets.h>. <sysdep.h> no longer includes these definitions, so there is no cyclic dependency anymore when computing the <tcb-offsets.h> constants. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'libio')
-rw-r--r-- | libio/iofopncook.c | 1 | ||||
-rw-r--r-- | libio/iofwide.c | 2 | ||||
-rw-r--r-- | libio/libioP.h | 1 | ||||
-rw-r--r-- | libio/vtables.c | 1 |
4 files changed, 4 insertions, 1 deletions
diff --git a/libio/iofopncook.c b/libio/iofopncook.c index e108ad2199..a7db4ef1c9 100644 --- a/libio/iofopncook.c +++ b/libio/iofopncook.c @@ -28,6 +28,7 @@ #include <stdio.h> #include <stdlib.h> #include <shlib-compat.h> +#include <pointer_guard.h> static ssize_t _IO_cookie_read (FILE *fp, void *buf, ssize_t size) diff --git a/libio/iofwide.c b/libio/iofwide.c index 01616e06c7..1ce685f48a 100644 --- a/libio/iofwide.c +++ b/libio/iofwide.c @@ -36,7 +36,7 @@ #include <wcsmbs/wcsmbsload.h> #include <iconv/gconv_int.h> #include <shlib-compat.h> -#include <sysdep.h> +#include <pointer_guard.h> /* Return orientation of stream. If mode is nonzero try to change diff --git a/libio/libioP.h b/libio/libioP.h index ba4fdbd200..dac3de73a1 100644 --- a/libio/libioP.h +++ b/libio/libioP.h @@ -47,6 +47,7 @@ #include "iolibio.h" #include <shlib-compat.h> +#include <pointer_guard.h> /* For historical reasons this is the name of the sysdeps header that adjusts the libio configuration. */ diff --git a/libio/vtables.c b/libio/vtables.c index 50acab7f21..32459e4fac 100644 --- a/libio/vtables.c +++ b/libio/vtables.c @@ -20,6 +20,7 @@ #include <libioP.h> #include <stdio.h> #include <ldsodefs.h> +#include <pointer_guard.h> #ifdef SHARED |