forked from rpms/glibc
144f612406
Downstream only and disabled by default.
82 lines
3.2 KiB
Diff
82 lines
3.2 KiB
Diff
From 7a97a9ab63a37ae1191e514258e4f6fefdc2e41b Mon Sep 17 00:00:00 2001
|
|
From: "H.J. Lu" <hjl.tools@gmail.com>
|
|
Date: Fri, 17 Mar 2023 16:21:49 -0700
|
|
Subject: [PATCH v2 06/15] x86/cet: Add tests for
|
|
GLIBC_TUNABLES=glibc.cpu.hwcaps=-SHSTK
|
|
|
|
Verify that GLIBC_TUNABLES=glibc.cpu.hwcaps=-SHSTK turns off shadow
|
|
stack properly.
|
|
---
|
|
sysdeps/x86/Makefile | 7 +++++++
|
|
sysdeps/x86/tst-shstk-legacy-1c-static.c | 1 +
|
|
sysdeps/x86/tst-shstk-legacy-1c.c | 20 ++++++++++++++++++++
|
|
3 files changed, 28 insertions(+)
|
|
create mode 100644 sysdeps/x86/tst-shstk-legacy-1c-static.c
|
|
create mode 100644 sysdeps/x86/tst-shstk-legacy-1c.c
|
|
|
|
diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
|
|
index 580c3ecdc5..5f1414fba3 100644
|
|
--- a/sysdeps/x86/Makefile
|
|
+++ b/sysdeps/x86/Makefile
|
|
@@ -137,10 +137,13 @@ tests += \
|
|
tst-shstk-legacy-1a-static \
|
|
tst-shstk-legacy-1b \
|
|
tst-shstk-legacy-1b-static \
|
|
+ tst-shstk-legacy-1c \
|
|
+ tst-shstk-legacy-1c-static \
|
|
# tests
|
|
tests-static += \
|
|
tst-shstk-legacy-1a-static \
|
|
tst-shstk-legacy-1b-static \
|
|
+ tst-shstk-legacy-1c-static \
|
|
# tests-static
|
|
extra-objs += \
|
|
tst-shstk-legacy-1-extra.o \
|
|
@@ -227,6 +230,10 @@ $(objpfx)tst-shstk-legacy-1a: $(objpfx)tst-shstk-legacy-1-extra.o
|
|
$(objpfx)tst-shstk-legacy-1a-static: $(objpfx)tst-shstk-legacy-1-extra.o
|
|
$(objpfx)tst-shstk-legacy-1b: $(objpfx)tst-shstk-legacy-1-extra.o
|
|
$(objpfx)tst-shstk-legacy-1b-static: $(objpfx)tst-shstk-legacy-1-extra.o
|
|
+tst-shstk-legacy-1c-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-SHSTK
|
|
+tst-shstk-legacy-1c-static-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-SHSTK
|
|
+$(objpfx)tst-shstk-legacy-1c: $(objpfx)tst-shstk-legacy-1-extra.o
|
|
+$(objpfx)tst-shstk-legacy-1c-static: $(objpfx)tst-shstk-legacy-1-extra.o
|
|
endif
|
|
|
|
# Add -fcf-protection to CFLAGS when CET is enabled.
|
|
diff --git a/sysdeps/x86/tst-shstk-legacy-1c-static.c b/sysdeps/x86/tst-shstk-legacy-1c-static.c
|
|
new file mode 100644
|
|
index 0000000000..91ea346aaf
|
|
--- /dev/null
|
|
+++ b/sysdeps/x86/tst-shstk-legacy-1c-static.c
|
|
@@ -0,0 +1 @@
|
|
+#include "tst-shstk-legacy-1c.c"
|
|
diff --git a/sysdeps/x86/tst-shstk-legacy-1c.c b/sysdeps/x86/tst-shstk-legacy-1c.c
|
|
new file mode 100644
|
|
index 0000000000..eb218c6c70
|
|
--- /dev/null
|
|
+++ b/sysdeps/x86/tst-shstk-legacy-1c.c
|
|
@@ -0,0 +1,20 @@
|
|
+/* Check that legacy shadow stack code won't trigger segfault with
|
|
+ GLIBC_TUNABLES=glibc.cpu.hwcaps=-SHSTK
|
|
+ Copyright (C) 2023 Free Software Foundation, Inc.
|
|
+ This file is part of the GNU C Library.
|
|
+
|
|
+ The GNU C Library is free software; you can redistribute it and/or
|
|
+ modify it under the terms of the GNU Lesser General Public
|
|
+ License as published by the Free Software Foundation; either
|
|
+ version 2.1 of the License, or (at your option) any later version.
|
|
+
|
|
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+ Lesser General Public License for more details.
|
|
+
|
|
+ You should have received a copy of the GNU Lesser General Public
|
|
+ License along with the GNU C Library; if not, see
|
|
+ <https://www.gnu.org/licenses/>. */
|
|
+
|
|
+#include "tst-shstk-legacy-1a.c"
|
|
--
|
|
2.40.1
|
|
|