summaryrefslogtreecommitdiffstats
path: root/main/libc0.9.32/config-has-fortify.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/libc0.9.32/config-has-fortify.patch')
-rw-r--r--main/libc0.9.32/config-has-fortify.patch125
1 files changed, 0 insertions, 125 deletions
diff --git a/main/libc0.9.32/config-has-fortify.patch b/main/libc0.9.32/config-has-fortify.patch
deleted file mode 100644
index 01e26e7e1..000000000
--- a/main/libc0.9.32/config-has-fortify.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 82098ab9b853c33ee8ade61c9510b295cc696de1 Mon Sep 17 00:00:00 2001
-From: Peter S. Mazinger <ps.m@gmx.net>
-Date: Wed, 09 Mar 2011 08:23:48 +0000
-Subject: guard *_chk() related stuff with UCLIBC_HAS_FORTIFY
-
-Guard x86_64 memset_chk/memcpy_chk be guarded by UCLIBC_HAS_FORTIFY.
-Compile ssp.c if one of SSP/FORTIFY is defined.
-Guard __chk_fail() with UCLIBC_HAS_FORTIFY and move its prototype to libc-internal.h.
-Disable _FORTIFY_SOURCE if UCLIBC_HAS_FORTIFY is not set.
-
-The config option itself is omitted on purpose,
-headers need to be reviewed and generic *_chk() functions need to be first provided.
-
-Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
----
-diff --git a/include/features.h b/include/features.h
-index f4d70d7..41e83a9 100644
---- a/include/features.h
-+++ b/include/features.h
-@@ -198,9 +198,12 @@
- # define __OPTIMIZE_SIZE__ 1
-
- /* disable unsupported features */
--# undef _FORTIFY_SOURCE
- # undef __LDBL_COMPAT
-
-+# ifndef __UCLIBC_HAS_FORTIFY__
-+# undef _FORTIFY_SOURCE
-+# endif
-+
- # ifndef __UCLIBC_HAS_THREADS__
- # if defined _REENTRANT || defined _THREAD_SAFE
- # warning requested reentrant code, but thread support was disabled
-diff --git a/include/libc-internal.h b/include/libc-internal.h
-index 443b1fc..3ac0b05 100644
---- a/include/libc-internal.h
-+++ b/include/libc-internal.h
-@@ -65,6 +65,11 @@ libc_hidden_proto(__glibc_strerror_r)
- /* internal access to program name */
- extern const char *__uclibc_progname attribute_hidden;
-
-+# ifdef __UCLIBC_HAS_FORTIFY__
-+extern void __chk_fail(void) attribute_noreturn;
-+libc_hidden_proto(__chk_fail)
-+# endif
-+
- # endif /* IS_IN_libc */
-
- #endif /* __ASSEMBLER__ */
-diff --git a/libc/string/x86_64/memcpy.S b/libc/string/x86_64/memcpy.S
-index 6d941e0..9c8169b 100644
---- a/libc/string/x86_64/memcpy.S
-+++ b/libc/string/x86_64/memcpy.S
-@@ -26,12 +26,10 @@
- #define MEMPCPY_P (defined memcpy)
-
- .text
--#if defined __PIC__ && !defined NOT_IN_libc
-+#if defined __PIC__ && !defined NOT_IN_libc && defined __UCLIBC_HAS_FORTIFY__
- ENTRY (__memcpy_chk)
- cmpq %rdx, %rcx
--#if defined __UCLIBC_HAS_SSP__
- jb HIDDEN_JUMPTARGET (__chk_fail)
--#endif
- END (__memcpy_chk)
- #endif
- ENTRY (BP_SYM (memcpy))
-diff --git a/libc/string/x86_64/memset.S b/libc/string/x86_64/memset.S
-index df265f3..6b758ce 100644
---- a/libc/string/x86_64/memset.S
-+++ b/libc/string/x86_64/memset.S
-@@ -29,12 +29,10 @@
- #define LARGE $120000
-
- .text
--#if defined __PIC__ && !defined NOT_IN_libc
-+#if defined __PIC__ && !defined NOT_IN_libc && defined __UCLIBC_HAS_FORTIFY__
- ENTRY (__memset_chk)
- cmpq %rdx, %rcx
--#if defined __UCLIBC_HAS_SSP__
- jb HIDDEN_JUMPTARGET (__chk_fail)
--#endif
- END (__memset_chk)
- #endif
- ENTRY (memset)
-@@ -144,6 +142,6 @@ END (memset)
- libc_hidden_def(memset)
- #endif
-
--#if !BZERO_P && defined __PIC__ && !defined NOT_IN_libc
-+#if !BZERO_P && defined __PIC__ && !defined NOT_IN_libc && defined __UCLIBC_HAS_FORTIFY__
- strong_alias (__memset_chk, __memset_zero_constant_len_parameter)
- #endif
-diff --git a/libc/sysdeps/linux/common/ssp.c b/libc/sysdeps/linux/common/ssp.c
-index d81c706..df242cc 100644
---- a/libc/sysdeps/linux/common/ssp.c
-+++ b/libc/sysdeps/linux/common/ssp.c
-@@ -87,6 +87,7 @@ void __stack_smash_handler(char func[], int damaged)
- }
- #endif
-
-+#ifdef __UCLIBC_HAS_SSP__
- void __stack_chk_fail(void) attribute_noreturn __cold;
- void __stack_chk_fail(void)
- {
-@@ -101,8 +102,9 @@ void __stack_chk_fail(void)
- while(1)
- terminate();
- }
-+#endif
-
--void __chk_fail(void) attribute_noreturn;
-+#ifdef __UCLIBC_HAS_FORTIFY__
- void __chk_fail(void)
- {
- static const char msg1[] = "buffer overflow detected: ";
-@@ -116,4 +119,6 @@ void __chk_fail(void)
- while(1)
- terminate();
- }
-+libc_hidden_def(__chk_fail)
-+#endif
-
---
-cgit v0.8.2.1