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 /iconv | |
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 'iconv')
-rw-r--r-- | iconv/gconv.c | 2 | ||||
-rw-r--r-- | iconv/gconv_cache.c | 1 | ||||
-rw-r--r-- | iconv/gconv_db.c | 2 | ||||
-rw-r--r-- | iconv/gconv_dl.c | 2 | ||||
-rw-r--r-- | iconv/gconv_trans.c | 1 | ||||
-rw-r--r-- | iconv/skeleton.c | 2 |
6 files changed, 6 insertions, 4 deletions
diff --git a/iconv/gconv.c b/iconv/gconv.c index 62d2b37bcd..dea9c80fee 100644 --- a/iconv/gconv.c +++ b/iconv/gconv.c @@ -23,7 +23,7 @@ #include <sys/param.h> #include <gconv_int.h> -#include <sysdep.h> +#include <pointer_guard.h> int diff --git a/iconv/gconv_cache.c b/iconv/gconv_cache.c index c772856d1f..5dbf596b8d 100644 --- a/iconv/gconv_cache.c +++ b/iconv/gconv_cache.c @@ -28,6 +28,7 @@ #include <gconv_int.h> #include <iconvconfig.h> #include <not-cancel.h> +#include <pointer_guard.h> #include "../intl/hash-string.h" diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c index bf385ac7b1..90037fdf58 100644 --- a/iconv/gconv_db.c +++ b/iconv/gconv_db.c @@ -27,7 +27,7 @@ #include <dlfcn.h> #include <gconv_int.h> -#include <sysdep.h> +#include <pointer_guard.h> /* Simple data structure for alias mapping. We have two names, `from' diff --git a/iconv/gconv_dl.c b/iconv/gconv_dl.c index 24c0bd1d39..c93c5dd380 100644 --- a/iconv/gconv_dl.c +++ b/iconv/gconv_dl.c @@ -26,7 +26,7 @@ #include <sys/param.h> #include <gconv_int.h> -#include <sysdep.h> +#include <pointer_guard.h> #ifdef DEBUG diff --git a/iconv/gconv_trans.c b/iconv/gconv_trans.c index 1ebbbfd51b..0f4ce10996 100644 --- a/iconv/gconv_trans.c +++ b/iconv/gconv_trans.c @@ -26,6 +26,7 @@ #include <libc-lock.h> #include "gconv_int.h" #include "../locale/localeinfo.h" +#include <pointer_guard.h> int diff --git a/iconv/skeleton.c b/iconv/skeleton.c index 0356dbf92b..42ee0b6508 100644 --- a/iconv/skeleton.c +++ b/iconv/skeleton.c @@ -147,7 +147,7 @@ # include <dlfcn.h> #endif -#include <sysdep.h> +#include <pointer_guard.h> #include <stdint.h> #ifndef DL_CALL_FCT |