From a745c4bfc8a9b5db4e48387170da0dc1d39e3abe Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Tue, 7 Nov 2017 20:50:27 +0100 Subject: remove unused FORTIFY code fragments --- include/features.h | 16 ++-------------- include/libc-internal.h | 5 ----- include/sys/cdefs.h | 7 ------- include/unistd.h | 6 ------ libc/string/x86_64/memcpy.S | 6 ------ libc/string/x86_64/memset.S | 9 --------- libc/sysdeps/linux/common/Makefile.in | 2 +- libc/sysdeps/linux/common/ssp.c | 20 -------------------- 8 files changed, 3 insertions(+), 68 deletions(-) diff --git a/include/features.h b/include/features.h index 7dc913f33..4a1066531 100644 --- a/include/features.h +++ b/include/features.h @@ -207,9 +207,8 @@ /* disable unsupported features */ # undef __LDBL_COMPAT -# ifndef __UCLIBC_HAS_FORTIFY__ -# undef _FORTIFY_SOURCE -# endif +/* no support for FORTIFY */ +# undef _FORTIFY_SOURCE # ifndef __UCLIBC_HAS_THREADS__ # if defined _REENTRANT || defined _THREAD_SAFE @@ -352,17 +351,6 @@ # define __USE_REENTRANT 1 #endif -#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \ - && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 -# if _FORTIFY_SOURCE > 1 -# define __USE_FORTIFY_LEVEL 2 -# else -# define __USE_FORTIFY_LEVEL 1 -# endif -#else -# define __USE_FORTIFY_LEVEL 0 -#endif - /* We do support the IEC 559 math functionality, real and complex. */ #ifdef __UCLIBC_HAS_FLOATS__ #define __STDC_IEC_559__ 1 diff --git a/include/libc-internal.h b/include/libc-internal.h index 87af07cc5..250f7f885 100644 --- a/include/libc-internal.h +++ b/include/libc-internal.h @@ -67,11 +67,6 @@ libc_hidden_proto(__xpg_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 - # ifdef __UCLIBC_HAS_SSP__ extern void __stack_chk_fail(void) attribute_noreturn __cold; # endif diff --git a/include/sys/cdefs.h b/include/sys/cdefs.h index 6cd38114b..a4359a05c 100644 --- a/include/sys/cdefs.h +++ b/include/sys/cdefs.h @@ -129,10 +129,6 @@ #endif -/* Fortify support. */ -#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) -#define __bos0(ptr) __builtin_object_size (ptr, 0) - #if __GNUC_PREREQ (4,3) # define __warndecl(name, msg) \ extern void name (void) __attribute__((__warning__ (msg))) @@ -300,9 +296,6 @@ #if __GNUC_PREREQ (3,4) # define __attribute_warn_unused_result__ \ __attribute__ ((__warn_unused_result__)) -# if __USE_FORTIFY_LEVEL > 0 -# define __wur __attribute_warn_unused_result__ -# endif #else # define __attribute_warn_unused_result__ /* empty */ #endif diff --git a/include/unistd.h b/include/unistd.h index c7364cf99..fdde8f02f 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -1248,12 +1248,6 @@ extern void swab (const void *__restrict __from, void *__restrict __to, extern char *ctermid (char *__s) __THROW; #endif - -/* Define some macros helping to catch buffer overflows. */ -#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline -# include -#endif - __END_DECLS diff --git a/libc/string/x86_64/memcpy.S b/libc/string/x86_64/memcpy.S index e164278df..af2f914ff 100644 --- a/libc/string/x86_64/memcpy.S +++ b/libc/string/x86_64/memcpy.S @@ -25,12 +25,6 @@ #define MEMPCPY_P (defined memcpy) .text -#if defined __PIC__ && !defined NOT_IN_libc && defined __UCLIBC_HAS_FORTIFY__ -ENTRY (__memcpy_chk) - cmpq %rdx, %rcx - jb HIDDEN_JUMPTARGET (__chk_fail) -END (__memcpy_chk) -#endif ENTRY (BP_SYM (memcpy)) /* Cutoff for the big loop is a size of 32 bytes since otherwise the loop will never be entered. */ diff --git a/libc/string/x86_64/memset.S b/libc/string/x86_64/memset.S index d6744129d..fa79275a7 100644 --- a/libc/string/x86_64/memset.S +++ b/libc/string/x86_64/memset.S @@ -28,11 +28,6 @@ #define LARGE $120000 .text -#if defined __PIC__ && !defined NOT_IN_libc && defined __UCLIBC_HAS_FORTIFY__ -ENTRY (__memset_chk) - cmpq %rdx, %rcx - jb HIDDEN_JUMPTARGET (__chk_fail) -END (__memset_chk) #endif ENTRY (memset) #if BZERO_P @@ -140,7 +135,3 @@ END (memset) #if !BZERO_P libc_hidden_def(memset) #endif - -#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/Makefile.in b/libc/sysdeps/linux/common/Makefile.in index faed6fd5d..5ba1906d7 100644 --- a/libc/sysdeps/linux/common/Makefile.in +++ b/libc/sysdeps/linux/common/Makefile.in @@ -14,7 +14,7 @@ CSRC- := ssp-local.c CSRC_LFS := $(notdir $(wildcard $(COMMON_DIR)/*64.c)) CSRC-y := $(filter-out llseek.c $(CSRC_LFS),$(CSRC-y)) CSRC-y += llseek.c $(CSRC_LFS) -CSRC-$(findstring y,$(UCLIBC_HAS_SSP)$(UCLIBC_HAS_FORTIFY)) += ssp.c +CSRC-$(findstring y,$(UCLIBC_HAS_SSP)) += ssp.c # we need these internally: fstatfs.c statfs.c CSRC-$(UCLIBC_LINUX_SPECIFIC) += \ bdflush.c \ diff --git a/libc/sysdeps/linux/common/ssp.c b/libc/sysdeps/linux/common/ssp.c index 87e10c2da..2a98a4e2a 100644 --- a/libc/sysdeps/linux/common/ssp.c +++ b/libc/sysdeps/linux/common/ssp.c @@ -85,23 +85,3 @@ ssp_handler(void) } strong_alias(ssp_handler,__stack_chk_fail) - -#ifdef __UCLIBC_HAS_FORTIFY__ -/* should be redone when activated to use common code above. - * for now, it works without debugging support */ -void __chk_fail(void) -{ - static const char msg_fail[] = "*** buffer overflow detected ***: "; - static const char msg_terminated[] = " terminated"; - pid_t pid; - - do_msg(msg_fail, __uclibc_progname, msg_terminated); - - pid = getpid(); - (void)kill(pid, SIGKILL); - /* The loop is added only to keep gcc happy. */ - while(1) - _exit(127); -} -libc_hidden_def(__chk_fail) -#endif -- cgit v1.2.3