diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2023-03-28 13:52:36 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2023-12-19 06:58:05 -0800 |
commit | 4d8a01d2b0963f7c7714ff53c313430599f0722f (patch) | |
tree | 2682a87a1b6353a83b0e6ddb7db8d4c0d96afcf5 | |
parent | 28bd6f832d4c8ec9a223c153427c1ab6fd19a548 (diff) | |
download | glibc-4d8a01d2b0963f7c7714ff53c313430599f0722f.tar.gz glibc-4d8a01d2b0963f7c7714ff53c313430599f0722f.tar.xz glibc-4d8a01d2b0963f7c7714ff53c313430599f0722f.zip |
x86/cet: Check CPU_FEATURE_ACTIVE in permissive mode
Verify that CPU_FEATURE_ACTIVE works properly in permissive mode.
-rw-r--r-- | sysdeps/x86/Makefile | 1 | ||||
-rw-r--r-- | sysdeps/x86/tst-cet-legacy-4.c | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile index 1bf6ff9e11..6911a07a87 100644 --- a/sysdeps/x86/Makefile +++ b/sysdeps/x86/Makefile @@ -219,6 +219,7 @@ CFLAGS-tst-cet-legacy-mod-1.c += -fcf-protection=none CFLAGS-tst-cet-legacy-mod-2.c += -fcf-protection=none CFLAGS-tst-cet-legacy-3.c += -fcf-protection=none CFLAGS-tst-cet-legacy-4.c += -fcf-protection=branch +CPPFLAGS-tst-cet-legacy-4a.c += -DCET_IS_PERMISSIVE=1 CFLAGS-tst-cet-legacy-4a.c += -fcf-protection CFLAGS-tst-cet-legacy-4b.c += -fcf-protection CFLAGS-tst-cet-legacy-mod-4.c += -fcf-protection=none diff --git a/sysdeps/x86/tst-cet-legacy-4.c b/sysdeps/x86/tst-cet-legacy-4.c index d75fb0e61c..c098120253 100644 --- a/sysdeps/x86/tst-cet-legacy-4.c +++ b/sysdeps/x86/tst-cet-legacy-4.c @@ -21,6 +21,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <sys/platform/x86.h> #include <support/check.h> @@ -40,6 +41,10 @@ do_test (void) return 0; } +#ifdef CET_IS_PERMISSIVE + TEST_VERIFY (!CPU_FEATURE_ACTIVE (IBT) && !CPU_FEATURE_ACTIVE (SHSTK)); +#endif + fp = dlsym (h, "test"); if (fp == NULL) FAIL_EXIT1 ("cannot get symbol 'test': %s\n", dlerror ()); |