aboutsummaryrefslogtreecommitdiff
path: root/debug
diff options
context:
space:
mode:
Diffstat (limited to 'debug')
-rw-r--r--debug/Depend1
-rw-r--r--debug/Makefile199
-rw-r--r--debug/Versions64
-rw-r--r--debug/asprintf_chk.c36
-rw-r--r--debug/backtrace-tst.c45
-rw-r--r--debug/backtrace.c90
-rw-r--r--debug/backtracesyms.c120
-rw-r--r--debug/backtracesymsfd.c122
-rwxr-xr-xdebug/catchsegv.sh107
-rw-r--r--debug/chk_fail.c30
-rw-r--r--debug/confstr_chk.c29
-rw-r--r--debug/dprintf_chk.c35
-rw-r--r--debug/execinfo.h43
-rw-r--r--debug/explicit_bzero_chk.c44
-rw-r--r--debug/fdelt_chk.c29
-rw-r--r--debug/fgets_chk.c61
-rw-r--r--debug/fgets_u_chk.c59
-rw-r--r--debug/fgetws_chk.c52
-rw-r--r--debug/fgetws_u_chk.c60
-rw-r--r--debug/fortify_fail.c33
-rw-r--r--debug/fprintf_chk.c44
-rw-r--r--debug/fread_chk.c54
-rw-r--r--debug/fread_u_chk.c51
-rw-r--r--debug/fwprintf_chk.c43
-rw-r--r--debug/getcwd_chk.c30
-rw-r--r--debug/getdomainname_chk.c28
-rw-r--r--debug/getgroups_chk.c35
-rw-r--r--debug/gethostname_chk.c28
-rw-r--r--debug/gets_chk.c75
-rw-r--r--debug/getwd_chk.c33
-rw-r--r--debug/longjmp_chk.c27
-rw-r--r--debug/mbsnrtowcs_chk.c30
-rw-r--r--debug/mbsrtowcs_chk.c30
-rw-r--r--debug/mbstowcs_chk.c34
-rw-r--r--debug/memcpy_chk.c31
-rw-r--r--debug/memmove_chk.c35
-rw-r--r--debug/mempcpy_chk.c32
-rw-r--r--debug/memset_chk.c28
-rw-r--r--debug/noophooks.c26
-rw-r--r--debug/obprintf_chk.c115
-rw-r--r--debug/pcprofile.c91
-rw-r--r--debug/pcprofiledump.c231
-rw-r--r--debug/poll_chk.c28
-rw-r--r--debug/ppoll_chk.c29
-rw-r--r--debug/pread64_chk.c29
-rw-r--r--debug/pread_chk.c29
-rw-r--r--debug/printf_chk.c44
-rw-r--r--debug/read_chk.c37
-rw-r--r--debug/readlink_chk.c37
-rw-r--r--debug/readlinkat_chk.c30
-rw-r--r--debug/readonly-area.c33
-rw-r--r--debug/realpath_chk.c59
-rw-r--r--debug/recv_chk.c29
-rw-r--r--debug/recvfrom_chk.c30
-rw-r--r--debug/segfault.c210
-rw-r--r--debug/snprintf_chk.c39
-rw-r--r--debug/sprintf_chk.c36
-rw-r--r--debug/stack_chk_fail.c31
-rw-r--r--debug/stack_chk_fail_local.c46
-rw-r--r--debug/stpcpy_chk.c34
-rw-r--r--debug/stpncpy_chk.c32
-rw-r--r--debug/strcat_chk.c54
-rw-r--r--debug/strcpy_chk.c33
-rw-r--r--debug/strncat_chk.c95
-rw-r--r--debug/strncpy_chk.c29
-rw-r--r--debug/swprintf_chk.c35
-rw-r--r--debug/test-stpcpy_chk.c46
-rw-r--r--debug/test-strcpy_chk.c356
-rw-r--r--debug/tst-backtrace.h48
-rw-r--r--debug/tst-backtrace2.c103
-rw-r--r--debug/tst-backtrace3.c81
-rw-r--r--debug/tst-backtrace4.c121
-rw-r--r--debug/tst-backtrace5.c139
-rw-r--r--debug/tst-backtrace6.c28
-rw-r--r--debug/tst-chk1.c1717
-rw-r--r--debug/tst-chk2.c2
-rw-r--r--debug/tst-chk3.c2
-rw-r--r--debug/tst-chk4.cc1
-rw-r--r--debug/tst-chk5.cc2
-rw-r--r--debug/tst-chk6.cc2
-rw-r--r--debug/tst-lfschk1.c2
-rw-r--r--debug/tst-lfschk2.c2
-rw-r--r--debug/tst-lfschk3.c2
-rw-r--r--debug/tst-lfschk4.cc2
-rw-r--r--debug/tst-lfschk5.cc2
-rw-r--r--debug/tst-lfschk6.cc2
-rw-r--r--debug/tst-longjmp_chk.c78
-rw-r--r--debug/tst-longjmp_chk2.c130
-rw-r--r--debug/tst-longjmp_chk3.c85
-rw-r--r--debug/ttyname_r_chk.c28
-rw-r--r--debug/vasprintf_chk.c95
-rw-r--r--debug/vdprintf_chk.c67
-rw-r--r--debug/vfprintf_chk.c42
-rw-r--r--debug/vfwprintf_chk.c41
-rw-r--r--debug/vprintf_chk.c41
-rw-r--r--debug/vsnprintf_chk.c70
-rw-r--r--debug/vsprintf_chk.c89
-rw-r--r--debug/vswprintf_chk.c74
-rw-r--r--debug/vwprintf_chk.c41
-rw-r--r--debug/warning-nop.c70
-rw-r--r--debug/wcpcpy_chk.c44
-rw-r--r--debug/wcpncpy_chk.c32
-rw-r--r--debug/wcrtomb_chk.c34
-rw-r--r--debug/wcscat_chk.c54
-rw-r--r--debug/wcscpy_chk.c60
-rw-r--r--debug/wcsncat_chk.c95
-rw-r--r--debug/wcsncpy_chk.c32
-rw-r--r--debug/wcsnrtombs_chk.c30
-rw-r--r--debug/wcsrtombs_chk.c30
-rw-r--r--debug/wcstombs_chk.c35
-rw-r--r--debug/wctomb_chk.c35
-rw-r--r--debug/wmemcpy_chk.c29
-rw-r--r--debug/wmemmove_chk.c29
-rw-r--r--debug/wmempcpy_chk.c30
-rw-r--r--debug/wmemset_chk.c29
-rw-r--r--debug/wprintf_chk.c44
-rwxr-xr-xdebug/xtrace.sh195
117 files changed, 0 insertions, 7926 deletions
diff --git a/debug/Depend b/debug/Depend
deleted file mode 100644
index f3e1156a4e..0000000000
--- a/debug/Depend
+++ /dev/null
@@ -1 +0,0 @@
-localedata
diff --git a/debug/Makefile b/debug/Makefile
deleted file mode 100644
index cd4975c35b..0000000000
--- a/debug/Makefile
+++ /dev/null
@@ -1,199 +0,0 @@
-# Copyright (C) 1998-2017 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
-# <http://www.gnu.org/licenses/>.
-
-#
-# Sub-makefile for debug portion of the library.
-#
-subdir := debug
-
-include ../Makeconfig
-
-headers := execinfo.h
-
-# Note that ptsname_r_chk and getlogin_r are not here, but in
-# login/Makefile instead. If that subdir is omitted from the
-# build, its _FORTIFY_SOURCE support will be too.
-routines = backtrace backtracesyms backtracesymsfd noophooks \
- memcpy_chk memmove_chk mempcpy_chk memset_chk stpcpy_chk \
- strcat_chk strcpy_chk strncat_chk strncpy_chk stpncpy_chk \
- sprintf_chk vsprintf_chk snprintf_chk vsnprintf_chk \
- printf_chk fprintf_chk vprintf_chk vfprintf_chk \
- gets_chk chk_fail readonly-area fgets_chk fgets_u_chk \
- read_chk pread_chk pread64_chk recv_chk recvfrom_chk \
- readlink_chk readlinkat_chk getwd_chk getcwd_chk \
- realpath_chk fread_chk fread_u_chk \
- wctomb_chk wcscpy_chk wmemcpy_chk wmemmove_chk wmempcpy_chk \
- wcpcpy_chk wcsncpy_chk wcscat_chk wcsncat_chk wmemset_chk \
- wcpncpy_chk \
- swprintf_chk vswprintf_chk wprintf_chk fwprintf_chk \
- vwprintf_chk vfwprintf_chk fgetws_chk fgetws_u_chk \
- confstr_chk getgroups_chk ttyname_r_chk \
- gethostname_chk getdomainname_chk wcrtomb_chk mbsnrtowcs_chk \
- wcsnrtombs_chk mbsrtowcs_chk wcsrtombs_chk mbstowcs_chk \
- wcstombs_chk asprintf_chk vasprintf_chk dprintf_chk \
- vdprintf_chk obprintf_chk \
- longjmp_chk ____longjmp_chk \
- fdelt_chk poll_chk ppoll_chk \
- explicit_bzero_chk \
- stack_chk_fail fortify_fail \
- $(static-only-routines)
-static-only-routines := warning-nop stack_chk_fail_local
-
-# Building the stack-protector failure routines with stack protection
-# makes no sense.
-
-CFLAGS-stack_chk_fail.c = $(no-stack-protector)
-CFLAGS-stack_chk_fail_local.c = $(no-stack-protector)
-
-CFLAGS-backtrace.c = -fno-omit-frame-pointer
-CFLAGS-sprintf_chk.c = $(libio-mtsafe)
-CFLAGS-snprintf_chk.c = $(libio-mtsafe)
-CFLAGS-vsprintf_chk.c = $(libio-mtsafe)
-CFLAGS-vsnprintf_chk.c = $(libio-mtsafe)
-CFLAGS-asprintf_chk.c = $(libio-mtsafe)
-CFLAGS-vasprintf_chk.c = $(libio-mtsafe)
-CFLAGS-obprintf_chk.c = $(libio-mtsafe)
-CFLAGS-dprintf_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-vdprintf_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-printf_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-fprintf_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-vprintf_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-vfprintf_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-gets_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-fgets_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-fgets_u_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-fread_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-fread_u_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-swprintf_chk.c = $(libio-mtsafe)
-CFLAGS-vswprintf_chk.c = $(libio-mtsafe)
-CFLAGS-wprintf_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-fwprintf_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-vwprintf_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-vfwprintf_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-fgetws_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-fgetws_u_chk.c = $(libio-mtsafe) -fexceptions
-CFLAGS-read_chk.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pread_chk.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pread64_chk.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-recv_chk.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-recvfrom_chk.c = -fexceptions -fasynchronous-unwind-tables
-
-# Need to make sure the settings here override what configure might have
-# set up for us, so keep the CFLAGS/CPPFLAGS split logical as the order is:
-# <user CFLAGS> <test CFLAGS> <user CPPFLAGS> <test CPPFLAGS>
-CFLAGS-tst-longjmp_chk.c = -fexceptions -fasynchronous-unwind-tables
-CPPFLAGS-tst-longjmp_chk.c = -D_FORTIFY_SOURCE=1
-CFLAGS-tst-longjmp_chk2.c = -fexceptions -fasynchronous-unwind-tables
-CPPFLAGS-tst-longjmp_chk2.c = -D_FORTIFY_SOURCE=1
-CFLAGS-tst-longjmp_chk3.c = -fexceptions -fasynchronous-unwind-tables
-CPPFLAGS-tst-longjmp_chk3.c = -D_FORTIFY_SOURCE=1
-
-# We know these tests have problems with format strings, this is what
-# we are testing. Disable that warning. They are also testing
-# deprecated functions (notably gets) so disable that warning as well.
-# And they also generate warnings from warning attributes, which
-# cannot be disabled via pragmas, so require -Wno-error to be used.
-CFLAGS-tst-chk1.c = -Wno-format -Wno-deprecated-declarations -Wno-error
-CFLAGS-tst-chk2.c = -Wno-format -Wno-deprecated-declarations -Wno-error
-CFLAGS-tst-chk3.c = -Wno-format -Wno-deprecated-declarations -Wno-error
-CFLAGS-tst-chk4.cc = -Wno-format -Wno-deprecated-declarations -Wno-error
-CFLAGS-tst-chk5.cc = -Wno-format -Wno-deprecated-declarations -Wno-error
-CFLAGS-tst-chk6.cc = -Wno-format -Wno-deprecated-declarations -Wno-error
-CFLAGS-tst-lfschk1.c = -Wno-format -Wno-deprecated-declarations -Wno-error
-CFLAGS-tst-lfschk2.c = -Wno-format -Wno-deprecated-declarations -Wno-error
-CFLAGS-tst-lfschk3.c = -Wno-format -Wno-deprecated-declarations -Wno-error
-CFLAGS-tst-lfschk4.cc = -Wno-format -Wno-deprecated-declarations -Wno-error
-CFLAGS-tst-lfschk5.cc = -Wno-format -Wno-deprecated-declarations -Wno-error
-CFLAGS-tst-lfschk6.cc = -Wno-format -Wno-deprecated-declarations -Wno-error
-LDLIBS-tst-chk4 = -lstdc++
-LDLIBS-tst-chk5 = -lstdc++
-LDLIBS-tst-chk6 = -lstdc++
-LDLIBS-tst-lfschk4 = -lstdc++
-LDLIBS-tst-lfschk5 = -lstdc++
-LDLIBS-tst-lfschk6 = -lstdc++
-
-# backtrace_symbols only works if we link with -rdynamic. backtrace
-# requires unwind tables on most architectures.
-CFLAGS-tst-backtrace2.c += -funwind-tables
-CFLAGS-tst-backtrace3.c += -funwind-tables
-CFLAGS-tst-backtrace4.c += -funwind-tables
-CFLAGS-tst-backtrace5.c += -funwind-tables
-CFLAGS-tst-backtrace6.c += -funwind-tables
-LDFLAGS-tst-backtrace2 = -rdynamic
-LDFLAGS-tst-backtrace3 = -rdynamic
-LDFLAGS-tst-backtrace4 = -rdynamic
-LDFLAGS-tst-backtrace5 = -rdynamic
-LDFLAGS-tst-backtrace6 = -rdynamic
-
-tests = backtrace-tst tst-longjmp_chk tst-chk1 tst-chk2 tst-chk3 \
- tst-lfschk1 tst-lfschk2 tst-lfschk3 test-strcpy_chk test-stpcpy_chk \
- tst-chk4 tst-chk5 tst-chk6 tst-lfschk4 tst-lfschk5 tst-lfschk6 \
- tst-longjmp_chk2 tst-backtrace2 tst-backtrace3 tst-backtrace4 \
- tst-backtrace5 tst-backtrace6
-
-ifeq (,$(CXX))
-tests-unsupported = tst-chk4 tst-chk5 tst-chk6 \
- tst-lfschk4 tst-lfschk5 tst-lfschk6
-endif
-
-extra-libs = libSegFault libpcprofile
-extra-libs-others = $(extra-libs)
-
-libSegFault-routines = segfault
-libSegFault-inhibit-o = $(filter-out .os,$(object-suffixes))
-
-libpcprofile-routines = pcprofile
-libpcprofile-inhibit-o = $(filter-out .os,$(object-suffixes))
-
-others = pcprofiledump
-install-bin = pcprofiledump
-install-bin-script = xtrace
-
-ifeq ($(build-shared),yes)
-install-bin-script += catchsegv
-endif
-generated += catchsegv xtrace
-
-include ../Rules
-
-ifeq ($(run-built-tests),yes)
-LOCALES := de_DE.UTF-8
-include ../gen-locales.mk
-
-$(objpfx)tst-chk1.out: $(gen-locales)
-endif
-
-sLIBdir := $(shell echo $(slibdir) | sed 's,lib\(\|64\)$$,\\\\$$LIB,')
-
-$(objpfx)catchsegv: catchsegv.sh $(common-objpfx)soversions.mk \
- $(common-objpfx)config.make
- slibpfx=`echo $(slibdir)|sed 's/lib\(64\|\)$$/\\\\\\\\$$LIB/'`; \
- sed -e 's|@VERSION@|$(version)|' -e "s|@SLIB@|$$slibpfx|" \
- -e 's|@PKGVERSION@|$(PKGVERSION)|' \
- -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $< > $@.new
- chmod 555 $@.new
- mv -f $@.new $@
-
-$(objpfx)pcprofiledump: $(objpfx)pcprofiledump.o
-
-$(objpfx)xtrace: xtrace.sh
- rm -f $@.new
- sed -e 's|@BASH@|$(BASH)|' -e 's|@VERSION@|$(version)|' \
- -e 's|@SLIBDIR@|$(sLIBdir)|' -e 's|@BINDIR@|$(bindir)|' \
- -e 's|@PKGVERSION@|$(PKGVERSION)|' \
- -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $^ > $@.new \
- && rm -f $@ && mv $@.new $@ && chmod +x $@
diff --git a/debug/Versions b/debug/Versions
deleted file mode 100644
index a6628db356..0000000000
--- a/debug/Versions
+++ /dev/null
@@ -1,64 +0,0 @@
-libc {
- GLIBC_2.1 {
- # functions used in other libraries
- __backtrace; __backtrace_symbols; __backtrace_symbols_fd;
-
- # b*
- backtrace; backtrace_symbols; backtrace_symbols_fd;
- }
- GLIBC_2.2 {
- # These are to support some gcc features.
- __cyg_profile_func_enter; __cyg_profile_func_exit;
- }
- GLIBC_2.3.4 {
- __chk_fail;
- __memcpy_chk; __memmove_chk; __mempcpy_chk; __memset_chk; __stpcpy_chk;
- __strcat_chk; __strcpy_chk; __strncat_chk; __strncpy_chk;
- __sprintf_chk; __vsprintf_chk; __snprintf_chk; __vsnprintf_chk;
- __printf_chk; __fprintf_chk; __vprintf_chk; __vfprintf_chk;
- __gets_chk;
- }
- GLIBC_2.4 {
- __fgets_chk; __fgets_unlocked_chk;
- __read_chk; __pread_chk; __pread64_chk;
- __readlink_chk; __getcwd_chk; __getwd_chk;
- __recv_chk; __recvfrom_chk;
- __realpath_chk; __wctomb_chk;
- __stpncpy_chk;
- __wcscpy_chk; __wmemcpy_chk; __wmemmove_chk; __wmempcpy_chk; __wcpcpy_chk;
- __wcsncpy_chk; __wcscat_chk; __wcsncat_chk; __wmemset_chk; __wcpncpy_chk;
- __swprintf_chk; __vswprintf_chk; __wprintf_chk; __fwprintf_chk;
- __vwprintf_chk; __vfwprintf_chk; __fgetws_chk; __fgetws_unlocked_chk;
- __confstr_chk; __getgroups_chk; __ttyname_r_chk;
- __gethostname_chk; __getdomainname_chk; __wcrtomb_chk; __mbsnrtowcs_chk;
- __wcsnrtombs_chk; __mbsrtowcs_chk; __wcsrtombs_chk; __mbstowcs_chk;
- __wcstombs_chk;
-
- __stack_chk_fail;
- }
- GLIBC_2.5 {
- __readlinkat_chk;
- }
- GLIBC_2.7 {
- __fread_chk; __fread_unlocked_chk;
- }
- GLIBC_2.8 {
- __asprintf_chk; __vasprintf_chk; __dprintf_chk; __vdprintf_chk;
- __obstack_printf_chk; __obstack_vprintf_chk;
- }
- GLIBC_2.11 {
- __longjmp_chk;
- }
- GLIBC_2.15 {
- __fdelt_chk; __fdelt_warn;
- }
- GLIBC_2.16 {
- __poll_chk; __ppoll_chk;
- }
- GLIBC_2.25 {
- __explicit_bzero_chk;
- }
- GLIBC_PRIVATE {
- __fortify_fail;
- }
-}
diff --git a/debug/asprintf_chk.c b/debug/asprintf_chk.c
deleted file mode 100644
index a8ab89185d..0000000000
--- a/debug/asprintf_chk.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <libioP.h>
-#include <stdarg.h>
-#include <stdio.h>
-
-
-/* Write formatted output from FORMAT to a string which is
- allocated with malloc and stored in *STRING_PTR. */
-int
-__asprintf_chk (char **result_ptr, int flags, const char *format, ...)
-{
- va_list arg;
- int done;
-
- va_start (arg, format);
- done = __vasprintf_chk (result_ptr, flags, format, arg);
- va_end (arg);
-
- return done;
-}
diff --git a/debug/backtrace-tst.c b/debug/backtrace-tst.c
deleted file mode 100644
index cc46c33c3c..0000000000
--- a/debug/backtrace-tst.c
+++ /dev/null
@@ -1,45 +0,0 @@
-#include <execinfo.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-
-
-static int
-compare (const void *p1, const void *p2)
-{
- void *ba[20];
- int n = backtrace (ba, sizeof (ba) / sizeof (ba[0]));
- if (n != 0)
- {
- char **names = backtrace_symbols (ba, n);
- if (names != NULL)
- {
- int i;
- printf ("called from %s\n", names[0]);
- for (i = 1; i < n; ++i)
- printf (" %s\n", names[i]);
- free (names);
- }
- }
-
- return *(const uint32_t *) p1 - *(const uint32_t *) p2;
-}
-
-
-int
-main (int argc, char *argv[])
-{
- uint32_t arr[20];
- size_t cnt;
-
- for (cnt = 0; cnt < sizeof (arr) / sizeof (arr[0]); ++cnt)
- arr[cnt] = random ();
-
- qsort (arr, sizeof (arr) / sizeof (arr[0]), sizeof (arr[0]), compare);
-
- for (cnt = 0; cnt < sizeof (arr) / sizeof (arr[0]); ++cnt)
- printf ("%" PRIx32 "\n", arr[cnt]);
-
- return 0;
-}
diff --git a/debug/backtrace.c b/debug/backtrace.c
deleted file mode 100644
index 072fc2f7f8..0000000000
--- a/debug/backtrace.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Return backtrace of current program state. Generic version.
- Copyright (C) 1998-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <execinfo.h>
-#include <signal.h>
-#include <frame.h>
-#include <sigcontextinfo.h>
-#include <ldsodefs.h>
-
-/* This implementation assumes a stack layout that matches the defaults
- used by gcc's `__builtin_frame_address' and `__builtin_return_address'
- (FP is the frame pointer register):
-
- +-----------------+ +-----------------+
- FP -> | previous FP --------> | previous FP ------>...
- | | | |
- | return address | | return address |
- +-----------------+ +-----------------+
-
- */
-
-/* Get some notion of the current stack. Need not be exactly the top
- of the stack, just something somewhere in the current frame. */
-#ifndef CURRENT_STACK_FRAME
-# define CURRENT_STACK_FRAME ({ char __csf; &__csf; })
-#endif
-
-/* By default we assume that the stack grows downward. */
-#ifndef INNER_THAN
-# define INNER_THAN <
-#endif
-
-/* By default assume the `next' pointer in struct layout points to the
- next struct layout. */
-#ifndef ADVANCE_STACK_FRAME
-# define ADVANCE_STACK_FRAME(next) ((struct layout *) (next))
-#endif
-
-/* By default, the frame pointer is just what we get from gcc. */
-#ifndef FIRST_FRAME_POINTER
-# define FIRST_FRAME_POINTER __builtin_frame_address (0)
-#endif
-
-int
-__backtrace (void **array, int size)
-{
- struct layout *current;
- void *top_frame;
- void *top_stack;
- int cnt = 0;
-
- top_frame = FIRST_FRAME_POINTER;
- top_stack = CURRENT_STACK_FRAME;
-
- /* We skip the call to this function, it makes no sense to record it. */
- current = ((struct layout *) top_frame);
- while (cnt < size)
- {
- if ((void *) current INNER_THAN top_stack
- || !((void *) current INNER_THAN __libc_stack_end))
- /* This means the address is out of range. Note that for the
- toplevel we see a frame pointer with value NULL which clearly is
- out of range. */
- break;
-
- array[cnt++] = current->return_address;
-
- current = ADVANCE_STACK_FRAME (current->next);
- }
-
- return cnt;
-}
-weak_alias (__backtrace, backtrace)
-libc_hidden_def (__backtrace)
diff --git a/debug/backtracesyms.c b/debug/backtracesyms.c
deleted file mode 100644
index d2d8b26505..0000000000
--- a/debug/backtracesyms.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Return list with names for address in backtrace.
- Copyright (C) 1998-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <assert.h>
-#include <execinfo.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <ldsodefs.h>
-
-#if __ELF_NATIVE_CLASS == 32
-# define WORD_WIDTH 8
-#else
-/* We assume 64bits. */
-# define WORD_WIDTH 16
-#endif
-
-
-char **
-__backtrace_symbols (void *const *array, int size)
-{
- Dl_info info[size];
- int status[size];
- int cnt;
- size_t total = 0;
- char **result;
-
- /* Fill in the information we can get from `dladdr'. */
- for (cnt = 0; cnt < size; ++cnt)
- {
- struct link_map *map;
- status[cnt] = _dl_addr (array[cnt], &info[cnt], &map, NULL);
- if (status[cnt] && info[cnt].dli_fname && info[cnt].dli_fname[0] != '\0')
- {
- /* We have some info, compute the length of the string which will be
- "<file-name>(<sym-name>+offset) [address]. */
- total += (strlen (info[cnt].dli_fname ?: "")
- + strlen (info[cnt].dli_sname ?: "")
- + 3 + WORD_WIDTH + 3 + WORD_WIDTH + 5);
-
- /* The load bias is more useful to the user than the load
- address. The use of these addresses is to calculate an
- address in the ELF file, so its prelinked bias is not
- something we want to subtract out. */
- info[cnt].dli_fbase = (void *) map->l_addr;
- }
- else
- total += 5 + WORD_WIDTH;
- }
-
- /* Allocate memory for the result. */
- result = (char **) malloc (size * sizeof (char *) + total);
- if (result != NULL)
- {
- char *last = (char *) (result + size);
-
- for (cnt = 0; cnt < size; ++cnt)
- {
- result[cnt] = last;
-
- if (status[cnt]
- && info[cnt].dli_fname != NULL && info[cnt].dli_fname[0] != '\0')
- {
- if (info[cnt].dli_sname == NULL)
- /* We found no symbol name to use, so describe it as
- relative to the file. */
- info[cnt].dli_saddr = info[cnt].dli_fbase;
-
- if (info[cnt].dli_sname == NULL && info[cnt].dli_saddr == 0)
- last += 1 + sprintf (last, "%s(%s) [%p]",
- info[cnt].dli_fname ?: "",
- info[cnt].dli_sname ?: "",
- array[cnt]);
- else
- {
- char sign;
- ptrdiff_t offset;
- if (array[cnt] >= (void *) info[cnt].dli_saddr)
- {
- sign = '+';
- offset = array[cnt] - info[cnt].dli_saddr;
- }
- else
- {
- sign = '-';
- offset = info[cnt].dli_saddr - array[cnt];
- }
-
- last += 1 + sprintf (last, "%s(%s%c%#tx) [%p]",
- info[cnt].dli_fname ?: "",
- info[cnt].dli_sname ?: "",
- sign, offset, array[cnt]);
- }
- }
- else
- last += 1 + sprintf (last, "[%p]", array[cnt]);
- }
- assert (last <= (char *) result + size * sizeof (char *) + total);
- }
-
- return result;
-}
-weak_alias (__backtrace_symbols, backtrace_symbols)
diff --git a/debug/backtracesymsfd.c b/debug/backtracesymsfd.c
deleted file mode 100644
index f34a35d6c3..0000000000
--- a/debug/backtracesymsfd.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Write formatted list with names for addresses in backtrace to a file.
- Copyright (C) 1998-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <execinfo.h>
-#include <string.h>
-#include <sys/uio.h>
-
-#include <_itoa.h>
-#include <ldsodefs.h>
-
-#if __ELF_NATIVE_CLASS == 32
-# define WORD_WIDTH 8
-#else
-/* We assume 64bits. */
-# define WORD_WIDTH 16
-#endif
-
-
-void
-__backtrace_symbols_fd (void *const *array, int size, int fd)
-{
- struct iovec iov[9];
- int cnt;
-
- for (cnt = 0; cnt < size; ++cnt)
- {
- char buf[WORD_WIDTH];
- char buf2[WORD_WIDTH];
- Dl_info info;
- struct link_map *map;
- size_t last = 0;
-
- if (_dl_addr (array[cnt], &info, &map, NULL)
- && info.dli_fname != NULL && info.dli_fname[0] != '\0')
- {
- /* Name of the file. */
- iov[0].iov_base = (void *) info.dli_fname;
- iov[0].iov_len = strlen (info.dli_fname);
- last = 1;
-
- if (info.dli_sname != NULL || map->l_addr != 0)
- {
- size_t diff;
-
- iov[last].iov_base = (void *) "(";
- iov[last].iov_len = 1;
- ++last;
-
- if (info.dli_sname != NULL)
- {
- /* We have a symbol name. */
- iov[last].iov_base = (void *) info.dli_sname;
- iov[last].iov_len = strlen (info.dli_sname);
- ++last;
- }
- else
- /* We have no symbol, so describe it as relative to the file.
- The load bias is more useful to the user than the load
- address. The use of these addresses is to calculate an
- address in the ELF file, so its prelinked bias is not
- something we want to subtract out. */
- info.dli_saddr = (void *) map->l_addr;
-
- if (array[cnt] >= (void *) info.dli_saddr)
- {
- iov[last].iov_base = (void *) "+0x";
- diff = array[cnt] - info.dli_saddr;
- }
- else
- {
- iov[last].iov_base = (void *) "-0x";
- diff = info.dli_saddr - array[cnt];
- }
- iov[last].iov_len = 3;
- ++last;
-
- iov[last].iov_base = _itoa_word ((unsigned long int) diff,
- &buf2[WORD_WIDTH], 16, 0);
- iov[last].iov_len = (&buf2[WORD_WIDTH]
- - (char *) iov[last].iov_base);
- ++last;
-
- iov[last].iov_base = (void *) ")";
- iov[last].iov_len = 1;
- ++last;
- }
- }
-
- iov[last].iov_base = (void *) "[0x";
- iov[last].iov_len = 3;
- ++last;
-
- iov[last].iov_base = _itoa_word ((unsigned long int) array[cnt],
- &buf[WORD_WIDTH], 16, 0);
- iov[last].iov_len = &buf[WORD_WIDTH] - (char *) iov[last].iov_base;
- ++last;
-
- iov[last].iov_base = (void *) "]\n";
- iov[last].iov_len = 2;
- ++last;
-
- __writev (fd, iov, last);
- }
-}
-weak_alias (__backtrace_symbols_fd, backtrace_symbols_fd)
-libc_hidden_def (__backtrace_symbols_fd)
diff --git a/debug/catchsegv.sh b/debug/catchsegv.sh
deleted file mode 100755
index db4154a362..0000000000
--- a/debug/catchsegv.sh
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/bin/sh
-# Copyright (C) 1998-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-# Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
-
-# 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
-# <http://www.gnu.org/licenses/>.
-
-if test $# -eq 0; then
- echo "$0: missing program name" >&2
- echo "Try \`$0 --help' for more information." >&2
- exit 1
-fi
-
-prog="$1"
-shift
-
-if test $# -eq 0; then
- case "$prog" in
- --h | --he | --hel | --help)
- echo 'Usage: catchsegv PROGRAM ARGS...'
- echo ' --help print this help, then exit'
- echo ' --version print version number, then exit'
- echo 'For bug reporting instructions, please see:'
- cat <<\EOF
-@REPORT_BUGS_TO@.
-EOF
- exit 0
- ;;
- --v | --ve | --ver | --vers | --versi | --versio | --version)
- echo 'catchsegv @PKGVERSION@@VERSION@'
- echo 'Copyright (C) 2017 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-Written by Ulrich Drepper.'
- exit 0
- ;;
- *)
- ;;
- esac
-fi
-
-segv_output=`mktemp ${TMPDIR:-/tmp}/segv_output.XXXXXX` || exit
-
-# Redirect stderr to avoid termination message from shell.
-(exec 3>&2 2>/dev/null
-LD_PRELOAD=${LD_PRELOAD:+${LD_PRELOAD}:}@SLIB@/libSegFault.so \
-SEGFAULT_USE_ALTSTACK=1 \
-SEGFAULT_OUTPUT_NAME=$segv_output \
-"$prog" ${1+"$@"} 2>&3 3>&-)
-exval=$?
-
-# Check for output. Even if the program terminated correctly it might
-# be that a minor process (clone) failed. Therefore we do not check the
-# exit code.
-if test -s "$segv_output"; then
- # The program caught a signal. The output is in the file with the
- # name we have in SEGFAULT_OUTPUT_NAME. In the output the names of
- # functions in shared objects are available, but names in the static
- # part of the program are not. We use addr2line to get this information.
- case $prog in
- */*) ;;
- *)
- old_IFS=$IFS
- IFS=:
- for p in $PATH; do
- test -n "$p" || p=.
- if test -f "$p/$prog"; then
- prog=$p/$prog
- break
- fi
- done
- IFS=$old_IFS
- ;;
- esac
- sed '/Backtrace/q' "$segv_output"
- sed '1,/Backtrace/d' "$segv_output" |
- (while read line; do
- line=`echo $line | sed "s@^$prog\\(\\[.*\\)@\1@"`
- case "$line" in
- \[*) addr=`echo "$line" | sed 's/^\[\(.*\)\]$/\1/'`
- complete=`addr2line -f -e "$prog" $addr 2>/dev/null`
- if test $? -eq 0; then
- echo "`echo "$complete"|sed 'N;s/\(.*\)\n\(.*\)/\2(\1)/;'`$line"
- else
- echo "$line"
- fi
- ;;
- *) echo "$line"
- ;;
- esac
- done)
-fi
-rm -f "$segv_output"
-
-exit $exval
diff --git a/debug/chk_fail.c b/debug/chk_fail.c
deleted file mode 100644
index 878c7f0199..0000000000
--- a/debug/chk_fail.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2004-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-
-extern char **__libc_argv attribute_hidden;
-
-void
-__attribute__ ((noreturn))
-__chk_fail (void)
-{
- __fortify_fail ("buffer overflow detected");
-}
-libc_hidden_def (__chk_fail)
diff --git a/debug/confstr_chk.c b/debug/confstr_chk.c
deleted file mode 100644
index 73c070f460..0000000000
--- a/debug/confstr_chk.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@readhat.com>, 20055.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-
-
-size_t
-__confstr_chk (int name, char *buf, size_t len, size_t buflen)
-{
- if (__glibc_unlikely (buflen < len))
- __chk_fail ();
-
- return confstr (name, buf, len);
-}
diff --git a/debug/dprintf_chk.c b/debug/dprintf_chk.c
deleted file mode 100644
index 79d562a58b..0000000000
--- a/debug/dprintf_chk.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <libioP.h>
-#include <stdarg.h>
-#include <stdio.h>
-
-
-/* Write formatted output to D, according to the format string FORMAT. */
-int
-__dprintf_chk (int d, int flags, const char *format, ...)
-{
- va_list arg;
- int done;
-
- va_start (arg, format);
- done = __vdprintf_chk (d, flags, format, arg);
- va_end (arg);
-
- return done;
-}
diff --git a/debug/execinfo.h b/debug/execinfo.h
deleted file mode 100644
index 3f31c117bf..0000000000
--- a/debug/execinfo.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 1998-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _EXECINFO_H
-#define _EXECINFO_H 1
-
-#include <features.h>
-
-__BEGIN_DECLS
-
-/* Store up to SIZE return address of the current program state in
- ARRAY and return the exact number of values stored. */
-extern int backtrace (void **__array, int __size) __nonnull ((1));
-
-
-/* Return names of functions from the backtrace list in ARRAY in a newly
- malloc()ed memory block. */
-extern char **backtrace_symbols (void *const *__array, int __size)
- __THROW __nonnull ((1));
-
-
-/* This function is similar to backtrace_symbols() but it writes the result
- immediately to a file. */
-extern void backtrace_symbols_fd (void *const *__array, int __size, int __fd)
- __THROW __nonnull ((1));
-
-__END_DECLS
-
-#endif /* execinfo.h */
diff --git a/debug/explicit_bzero_chk.c b/debug/explicit_bzero_chk.c
deleted file mode 100644
index 2680cc344d..0000000000
--- a/debug/explicit_bzero_chk.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Generic implementation of __explicit_bzero_chk.
- Copyright (C) 1991-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Torbjorn Granlund (tege@sics.se).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* This is the generic definition of __explicit_bzero_chk. The
- __explicit_bzero_chk symbol is used as the implementation of
- explicit_bzero throughout glibc. If this file is overriden by an
- architecture, both __explicit_bzero_chk and
- __explicit_bzero_chk_internal have to be defined (the latter not as
- an IFUNC). */
-
-#include <string.h>
-
-void
-__explicit_bzero_chk (void *dst, size_t len, size_t dstlen)
-{
- /* Inline __memset_chk to avoid a PLT reference to __memset_chk. */
- if (__glibc_unlikely (dstlen < len))
- __chk_fail ();
- memset (dst, '\0', len);
- /* Compiler barrier. */
- asm volatile ("" ::: "memory");
-}
-
-/* libc-internal references use the hidden
- __explicit_bzero_chk_internal symbol. This is necessary if
- __explicit_bzero_chk is implemented as an IFUNC because some
- targets do not support hidden references to IFUNC symbols. */
-strong_alias (__explicit_bzero_chk, __explicit_bzero_chk_internal)
diff --git a/debug/fdelt_chk.c b/debug/fdelt_chk.c
deleted file mode 100644
index 49e0eae97f..0000000000
--- a/debug/fdelt_chk.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2011-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/select.h>
-
-
-long int
-__fdelt_chk (long int d)
-{
- if (d < 0 || d >= FD_SETSIZE)
- __chk_fail ();
-
- return d / __NFDBITS;
-}
-strong_alias (__fdelt_chk, __fdelt_warn)
diff --git a/debug/fgets_chk.c b/debug/fgets_chk.c
deleted file mode 100644
index e4aa983396..0000000000
--- a/debug/fgets_chk.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (C) 1993-2017 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
- <http://www.gnu.org/licenses/>.
-
- As a special exception, if you link the code in this file with
- files compiled with a GNU compiler to produce an executable,
- that does not cause the resulting executable to be covered by
- the GNU Lesser General Public License. This exception does not
- however invalidate any other reasons why the executable file
- might be covered by the GNU Lesser General Public License.
- This exception applies to code released by its copyright holders
- in files containing the exception. */
-
-#include "libioP.h"
-#include <stdio.h>
-#include <sys/param.h>
-
-char *
-__fgets_chk (char *buf, size_t size, int n, _IO_FILE *fp)
-{
- _IO_size_t count;
- char *result;
- CHECK_FILE (fp, NULL);
- if (n <= 0)
- return NULL;
- _IO_acquire_lock (fp);
- /* This is very tricky since a file descriptor may be in the
- non-blocking mode. The error flag doesn't mean much in this
- case. We return an error only when there is a new error. */
- int old_error = fp->_IO_file_flags & _IO_ERR_SEEN;
- fp->_IO_file_flags &= ~_IO_ERR_SEEN;
- count = _IO_getline (fp, buf, MIN ((size_t) n - 1, size), '\n', 1);
- /* If we read in some bytes and errno is EAGAIN, that error will
- be reported for next read. */
- if (count == 0 || ((fp->_IO_file_flags & _IO_ERR_SEEN)
- && errno != EAGAIN))
- result = NULL;
- else if (count >= size)
- __chk_fail ();
- else
- {
- buf[count] = '\0';
- result = buf;
- }
- fp->_IO_file_flags |= old_error;
- _IO_release_lock (fp);
- return result;
-}
diff --git a/debug/fgets_u_chk.c b/debug/fgets_u_chk.c
deleted file mode 100644
index c9ab31fc7e..0000000000
--- a/debug/fgets_u_chk.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 1993-2017 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
- <http://www.gnu.org/licenses/>.
-
- As a special exception, if you link the code in this file with
- files compiled with a GNU compiler to produce an executable,
- that does not cause the resulting executable to be covered by
- the GNU Lesser General Public License. This exception does not
- however invalidate any other reasons why the executable file
- might be covered by the GNU Lesser General Public License.
- This exception applies to code released by its copyright holders
- in files containing the exception. */
-
-#include "libioP.h"
-#include <stdio.h>
-#include <sys/param.h>
-
-char *
-__fgets_unlocked_chk (char *buf, size_t size, int n, _IO_FILE *fp)
-{
- _IO_size_t count;
- char *result;
- CHECK_FILE (fp, NULL);
- if (n <= 0)
- return NULL;
- /* This is very tricky since a file descriptor may be in the
- non-blocking mode. The error flag doesn't mean much in this
- case. We return an error only when there is a new error. */
- int old_error = fp->_IO_file_flags & _IO_ERR_SEEN;
- fp->_IO_file_flags &= ~_IO_ERR_SEEN;
- count = _IO_getline (fp, buf, MIN ((size_t) n - 1, size), '\n', 1);
- /* If we read in some bytes and errno is EAGAIN, that error will
- be reported for next read. */
- if (count == 0 || ((fp->_IO_file_flags & _IO_ERR_SEEN)
- && errno != EAGAIN))
- result = NULL;
- else if (count >= size)
- __chk_fail ();
- else
- {
- buf[count] = '\0';
- result = buf;
- }
- fp->_IO_file_flags |= old_error;
- return result;
-}
diff --git a/debug/fgetws_chk.c b/debug/fgetws_chk.c
deleted file mode 100644
index d77bfb0061..0000000000
--- a/debug/fgetws_chk.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 1993-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include "libioP.h"
-#include <wchar.h>
-#include <sys/param.h>
-
-wchar_t *
-__fgetws_chk (wchar_t *buf, size_t size, int n, _IO_FILE *fp)
-{
- _IO_size_t count;
- wchar_t *result;
- int old_error;
- CHECK_FILE (fp, NULL);
- if (n <= 0)
- return NULL;
- _IO_acquire_lock (fp);
- /* This is very tricky since a file descriptor may be in the
- non-blocking mode. The error flag doesn't mean much in this
- case. We return an error only when there is a new error. */
- old_error = fp->_IO_file_flags & _IO_ERR_SEEN;
- fp->_IO_file_flags &= ~_IO_ERR_SEEN;
- count = _IO_getwline (fp, buf, MIN ((size_t) n - 1, size), L'\n', 1);
- /* If we read in some bytes and errno is EAGAIN, that error will
- be reported for next read. */
- if (count == 0 || (_IO_ferror_unlocked (fp) && errno != EAGAIN))
- result = NULL;
- else if (count >= size)
- __chk_fail ();
- else
- {
- buf[count] = '\0';
- result = buf;
- }
- fp->_IO_file_flags |= old_error;
- _IO_release_lock (fp);
- return result;
-}
diff --git a/debug/fgetws_u_chk.c b/debug/fgetws_u_chk.c
deleted file mode 100644
index a7e52a8518..0000000000
--- a/debug/fgetws_u_chk.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (C) 1993-2017 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
- <http://www.gnu.org/licenses/>.
-
- As a special exception, if you link the code in this file with
- files compiled with a GNU compiler to produce an executable,
- that does not cause the resulting executable to be covered by
- the GNU Lesser General Public License. This exception does not
- however invalidate any other reasons why the executable file
- might be covered by the GNU Lesser General Public License.
- This exception applies to code released by its copyright holders
- in files containing the exception. */
-
-#include "libioP.h"
-#include <wchar.h>
-#include <sys/param.h>
-
-wchar_t *
-__fgetws_unlocked_chk (wchar_t *buf, size_t size, int n, _IO_FILE *fp)
-{
- _IO_size_t count;
- wchar_t *result;
- int old_error;
- CHECK_FILE (fp, NULL);
- if (n <= 0)
- return NULL;
- /* This is very tricky since a file descriptor may be in the
- non-blocking mode. The error flag doesn't mean much in this
- case. We return an error only when there is a new error. */
- old_error = fp->_IO_file_flags & _IO_ERR_SEEN;
- fp->_IO_file_flags &= ~_IO_ERR_SEEN;
- count = _IO_getwline (fp, buf, MIN ((size_t) n - 1, size), L'\n', 1);
- /* If we read in some bytes and errno is EAGAIN, that error will
- be reported for next read. */
- if (count == 0 || ((fp->_IO_file_flags & _IO_ERR_SEEN)
- && errno != EAGAIN))
- result = NULL;
- else if (count >= size)
- __chk_fail ();
- else
- {
- buf[count] = '\0';
- result = buf;
- }
- fp->_IO_file_flags |= old_error;
- return result;
-}
diff --git a/debug/fortify_fail.c b/debug/fortify_fail.c
deleted file mode 100644
index a31977a40f..0000000000
--- a/debug/fortify_fail.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2007-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-
-extern char **__libc_argv attribute_hidden;
-
-void
-__attribute__ ((noreturn)) internal_function
-__fortify_fail (const char *msg)
-{
- /* The loop is added only to keep gcc happy. */
- while (1)
- __libc_message (2, "*** %s ***: %s terminated\n",
- msg, __libc_argv[0] ?: "<unknown>");
-}
-libc_hidden_def (__fortify_fail)
diff --git a/debug/fprintf_chk.c b/debug/fprintf_chk.c
deleted file mode 100644
index bf7a28c589..0000000000
--- a/debug/fprintf_chk.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include "../libio/libioP.h"
-
-
-/* Write formatted output to FP from the format string FORMAT. */
-int
-___fprintf_chk (FILE *fp, int flag, const char *format, ...)
-{
- va_list ap;
- int done;
-
- _IO_acquire_lock_clear_flags2 (fp);
- if (flag > 0)
- fp->_flags2 |= _IO_FLAGS2_FORTIFY;
-
- va_start (ap, format);
- done = vfprintf (fp, format, ap);
- va_end (ap);
-
- if (flag > 0)
- fp->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (fp);
-
- return done;
-}
-ldbl_strong_alias (___fprintf_chk, __fprintf_chk)
diff --git a/debug/fread_chk.c b/debug/fread_chk.c
deleted file mode 100644
index b99a4e477f..0000000000
--- a/debug/fread_chk.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 1993-2017 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
- <http://www.gnu.org/licenses/>.
-
- As a special exception, if you link the code in this file with
- files compiled with a GNU compiler to produce an executable,
- that does not cause the resulting executable to be covered by
- the GNU Lesser General Public License. This exception does not
- however invalidate any other reasons why the executable file
- might be covered by the GNU Lesser General Public License.
- This exception applies to code released by its copyright holders
- in files containing the exception. */
-
-#include "libioP.h"
-#include <stdio.h>
-
-size_t
-__fread_chk (void *__restrict ptr, size_t ptrlen,
- size_t size, size_t n, FILE *__restrict stream)
-{
- size_t bytes_requested = size * n;
- if (__builtin_expect ((n | size)
- >= (((size_t) 1) << (8 * sizeof (size_t) / 2)), 0))
- {
- if (size != 0 && bytes_requested / size != n)
- __chk_fail ();
- }
-
- if (__glibc_unlikely (bytes_requested > ptrlen))
- __chk_fail ();
-
- CHECK_FILE (stream, 0);
- if (bytes_requested == 0)
- return 0;
-
- size_t bytes_read;
- _IO_acquire_lock (stream);
- bytes_read = _IO_sgetn (stream, (char *) ptr, bytes_requested);
- _IO_release_lock (stream);
- return bytes_requested == bytes_read ? n : bytes_read / size;
-}
diff --git a/debug/fread_u_chk.c b/debug/fread_u_chk.c
deleted file mode 100644
index f546a53561..0000000000
--- a/debug/fread_u_chk.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 1993-2017 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
- <http://www.gnu.org/licenses/>.
-
- As a special exception, if you link the code in this file with
- files compiled with a GNU compiler to produce an executable,
- that does not cause the resulting executable to be covered by
- the GNU Lesser General Public License. This exception does not
- however invalidate any other reasons why the executable file
- might be covered by the GNU Lesser General Public License.
- This exception applies to code released by its copyright holders
- in files containing the exception. */
-
-#include "libioP.h"
-#include <stdio.h>
-
-size_t
-__fread_unlocked_chk (void *__restrict ptr, size_t ptrlen,
- size_t size, size_t n, FILE *__restrict stream)
-{
- size_t bytes_requested = size * n;
- if (__builtin_expect ((n | size)
- >= (((size_t) 1) << (8 * sizeof (size_t) / 2)), 0))
- {
- if (size != 0 && bytes_requested / size != n)
- __chk_fail ();
- }
-
- if (__glibc_unlikely (bytes_requested > ptrlen))
- __chk_fail ();
-
- CHECK_FILE (stream, 0);
- if (bytes_requested == 0)
- return 0;
-
- size_t bytes_read = _IO_sgetn (stream, (char *) ptr, bytes_requested);
- return bytes_requested == bytes_read ? n : bytes_read / size;
-}
diff --git a/debug/fwprintf_chk.c b/debug/fwprintf_chk.c
deleted file mode 100644
index 0926924646..0000000000
--- a/debug/fwprintf_chk.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <wchar.h>
-#include "../libio/libioP.h"
-
-
-/* Write formatted output to FP from the format string FORMAT. */
-int
-__fwprintf_chk (FILE *fp, int flag, const wchar_t *format, ...)
-{
- va_list ap;
- int done;
-
- _IO_acquire_lock_clear_flags2 (fp);
- if (flag > 0)
- fp->_flags2 |= _IO_FLAGS2_FORTIFY;
-
- va_start (ap, format);
- done = _IO_vfwprintf (fp, format, ap);
- va_end (ap);
-
- if (flag > 0)
- fp->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (fp);
-
- return done;
-}
diff --git a/debug/getcwd_chk.c b/debug/getcwd_chk.c
deleted file mode 100644
index e3372a9e3c..0000000000
--- a/debug/getcwd_chk.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-
-char *
-__getcwd_chk (char *buf, size_t size, size_t buflen)
-{
- if (size > buflen)
- __chk_fail ();
-
- return __getcwd (buf, size);
-}
diff --git a/debug/getdomainname_chk.c b/debug/getdomainname_chk.c
deleted file mode 100644
index 6a62a1180c..0000000000
--- a/debug/getdomainname_chk.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-
-
-int
-__getdomainname_chk (char *buf, size_t buflen, size_t nreal)
-{
- if (buflen > nreal)
- __chk_fail ();
-
- return getdomainname (buf, buflen);
-}
diff --git a/debug/getgroups_chk.c b/debug/getgroups_chk.c
deleted file mode 100644
index 0cbfa80ae5..0000000000
--- a/debug/getgroups_chk.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <unistd.h>
-
-
-int
-__getgroups_chk (int size, __gid_t list[], size_t listlen)
-{
- if (__glibc_unlikely (size < 0))
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- if (__glibc_unlikely (size * sizeof (__gid_t) > listlen))
- __chk_fail ();
-
- return __getgroups (size, list);
-}
diff --git a/debug/gethostname_chk.c b/debug/gethostname_chk.c
deleted file mode 100644
index 1710381039..0000000000
--- a/debug/gethostname_chk.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-
-
-int
-__gethostname_chk (char *buf, size_t buflen, size_t nreal)
-{
- if (buflen > nreal)
- __chk_fail ();
-
- return __gethostname (buf, buflen);
-}
diff --git a/debug/gets_chk.c b/debug/gets_chk.c
deleted file mode 100644
index 2118ca2af0..0000000000
--- a/debug/gets_chk.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 1993-2017 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
- <http://www.gnu.org/licenses/>.
-
- As a special exception, if you link the code in this file with
- files compiled with a GNU compiler to produce an executable,
- that does not cause the resulting executable to be covered by
- the GNU Lesser General Public License. This exception does not
- however invalidate any other reasons why the executable file
- might be covered by the GNU Lesser General Public License.
- This exception applies to code released by its copyright holders
- in files containing the exception. */
-
-#include "../libio/libioP.h"
-#include <limits.h>
-
-char *
-__gets_chk (char *buf, size_t size)
-{
- _IO_size_t count;
- int ch;
- char *retval;
-
- if (size == 0)
- __chk_fail ();
-
- _IO_acquire_lock (_IO_stdin);
- ch = _IO_getc_unlocked (_IO_stdin);
- if (ch == EOF)
- {
- retval = NULL;
- goto unlock_return;
- }
- if (ch == '\n')
- count = 0;
- else
- {
- /* This is very tricky since a file descriptor may be in the
- non-blocking mode. The error flag doesn't mean much in this
- case. We return an error only when there is a new error. */
- int old_error = _IO_stdin->_IO_file_flags & _IO_ERR_SEEN;
- _IO_stdin->_IO_file_flags &= ~_IO_ERR_SEEN;
- buf[0] = (char) ch;
- count = _IO_getline (_IO_stdin, buf + 1, size - 1, '\n', 0) + 1;
- if (_IO_stdin->_IO_file_flags & _IO_ERR_SEEN)
- {
- retval = NULL;
- goto unlock_return;
- }
- else
- _IO_stdin->_IO_file_flags |= old_error;
- }
- if (count >= size)
- __chk_fail ();
- buf[count] = 0;
- retval = buf;
-unlock_return:
- _IO_release_lock (_IO_stdin);
- return retval;
-}
-
-link_warning (__gets_chk, "the `gets' function is dangerous and should not be used.")
diff --git a/debug/getwd_chk.c b/debug/getwd_chk.c
deleted file mode 100644
index 0c6289cc00..0000000000
--- a/debug/getwd_chk.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-
-char *
-__getwd_chk (char *buf, size_t buflen)
-{
- char *res = __getcwd (buf, buflen);
- if (res == NULL && errno == ERANGE)
- __chk_fail ();
- return res;
-}
-
-link_warning (getwd,
- "the `getwd' function is dangerous and should not be used.")
diff --git a/debug/longjmp_chk.c b/debug/longjmp_chk.c
deleted file mode 100644
index 1a927f5ac1..0000000000
--- a/debug/longjmp_chk.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2009-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <setjmp.h>
-
-// XXX Should move to include/setjmp.h
-extern void ____longjmp_chk (__jmp_buf __env, int __val)
- __attribute__ ((__noreturn__));
-
-#define __longjmp ____longjmp_chk
-#define __libc_siglongjmp __longjmp_chk
-
-#include <setjmp/longjmp.c>
diff --git a/debug/mbsnrtowcs_chk.c b/debug/mbsnrtowcs_chk.c
deleted file mode 100644
index ee8fe18018..0000000000
--- a/debug/mbsnrtowcs_chk.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <locale.h>
-#include <wchar.h>
-
-
-size_t
-__mbsnrtowcs_chk (wchar_t *dst, const char **src, size_t nmc, size_t len,
- mbstate_t *ps, size_t dstlen)
-{
- if (__glibc_unlikely (dstlen < len))
- __chk_fail ();
-
- return __mbsnrtowcs (dst, src, nmc, len, ps);
-}
diff --git a/debug/mbsrtowcs_chk.c b/debug/mbsrtowcs_chk.c
deleted file mode 100644
index 7602e0fffc..0000000000
--- a/debug/mbsrtowcs_chk.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <locale.h>
-#include <wchar.h>
-
-
-size_t
-__mbsrtowcs_chk (wchar_t *dst, const char **src, size_t len,
- mbstate_t *ps, size_t dstlen)
-{
- if (__glibc_unlikely (dstlen < len))
- __chk_fail ();
-
- return __mbsrtowcs (dst, src, len, ps);
-}
diff --git a/debug/mbstowcs_chk.c b/debug/mbstowcs_chk.c
deleted file mode 100644
index 8b1cf94f76..0000000000
--- a/debug/mbstowcs_chk.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-
-
-size_t
-__mbstowcs_chk (wchar_t *dst, const char *src, size_t len, size_t dstlen)
-{
- if (__glibc_unlikely (dstlen < len))
- __chk_fail ();
-
- mbstate_t state;
-
- memset (&state, '\0', sizeof state);
- /* Return how many we wrote (or maybe an error). */
- return __mbsrtowcs (dst, &src, len, &state);
-}
diff --git a/debug/memcpy_chk.c b/debug/memcpy_chk.c
deleted file mode 100644
index 1ee8ea6cb4..0000000000
--- a/debug/memcpy_chk.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copy memory to memory until the specified number of bytes
- has been copied with error checking. Overlap is NOT handled correctly.
- Copyright (C) 1991-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Torbjorn Granlund (tege@sics.se).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <string.h>
-#include <memcopy.h>
-
-void *
-__memcpy_chk (void *dstpp, const void *srcpp, size_t len, size_t dstlen)
-{
- if (__glibc_unlikely (dstlen < len))
- __chk_fail ();
-
- return memcpy (dstpp, srcpp, len);
-}
diff --git a/debug/memmove_chk.c b/debug/memmove_chk.c
deleted file mode 100644
index abd21306e2..0000000000
--- a/debug/memmove_chk.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copy memory to memory until the specified number of bytes
- has been copied with error checking. Overlap is handled correctly.
- Copyright (C) 1991-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Torbjorn Granlund (tege@sics.se).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <string.h>
-#include <memcopy.h>
-
-#ifndef MEMMOVE_CHK
-# define MEMMOVE_CHK __memmove_chk
-#endif
-
-void *
-MEMMOVE_CHK (void *dest, const void *src, size_t len, size_t destlen)
-{
- if (__glibc_unlikely (destlen < len))
- __chk_fail ();
-
- return memmove (dest, src, len);
-}
diff --git a/debug/mempcpy_chk.c b/debug/mempcpy_chk.c
deleted file mode 100644
index 1ec3233def..0000000000
--- a/debug/mempcpy_chk.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copy memory to memory until the specified number of bytes
- has been copied, return pointer to following byte, with error checking.
- Overlap is NOT handled correctly.
- Copyright (C) 1991-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Torbjorn Granlund (tege@sics.se).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <string.h>
-#include <memcopy.h>
-
-void *
-__mempcpy_chk (void *dstpp, const void *srcpp, size_t len, size_t dstlen)
-{
- if (__glibc_unlikely (dstlen < len))
- __chk_fail ();
-
- return __mempcpy (dstpp, srcpp, len);
-}
diff --git a/debug/memset_chk.c b/debug/memset_chk.c
deleted file mode 100644
index ff15c3b4ba..0000000000
--- a/debug/memset_chk.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <string.h>
-#include <memcopy.h>
-
-void *
-__memset_chk (void *dstpp, int c, size_t len, size_t dstlen)
-{
- if (__glibc_unlikely (dstlen < len))
- __chk_fail ();
-
- return memset (dstpp, c, len);
-}
diff --git a/debug/noophooks.c b/debug/noophooks.c
deleted file mode 100644
index d98f3725d1..0000000000
--- a/debug/noophooks.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Noop hooks for the instrumenting functions.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <libc-internal.h>
-
-void
-__cyg_profile_func_enter (void *this_fn, void *call_site)
-{
-}
-strong_alias (__cyg_profile_func_enter, __cyg_profile_func_exit)
diff --git a/debug/obprintf_chk.c b/debug/obprintf_chk.c
deleted file mode 100644
index 12f021cb9d..0000000000
--- a/debug/obprintf_chk.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Print output of stream to given obstack.
- Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include <stdlib.h>
-#include <libioP.h>
-#include "../libio/strfile.h"
-#include <assert.h>
-#include <string.h>
-#include <errno.h>
-#include <obstack.h>
-#include <stdarg.h>
-#include <stdio_ext.h>
-
-
-struct _IO_obstack_file
-{
- struct _IO_FILE_plus file;
- struct obstack *obstack;
-};
-
-extern const struct _IO_jump_t _IO_obstack_jumps libio_vtable attribute_hidden;
-
-int
-__obstack_vprintf_chk (struct obstack *obstack, int flags, const char *format,
- va_list args)
-{
- struct obstack_FILE
- {
- struct _IO_obstack_file ofile;
- } new_f;
- int result;
- int size;
- int room;
-
-#ifdef _IO_MTSAFE_IO
- new_f.ofile.file.file._lock = NULL;
-#endif
-
- _IO_no_init (&new_f.ofile.file.file, _IO_USER_LOCK, -1, NULL, NULL);
- _IO_JUMPS (&new_f.ofile.file) = &_IO_obstack_jumps;
- room = obstack_room (obstack);
- size = obstack_object_size (obstack) + room;
- if (size == 0)
- {
- /* We have to handle the allocation a bit different since the
- `_IO_str_init_static' function would handle a size of zero
- different from what we expect. */
-
- /* Get more memory. */
- obstack_make_room (obstack, 64);
-
- /* Recompute how much room we have. */
- room = obstack_room (obstack);
- size = room;
-
- assert (size != 0);
- }
-
- _IO_str_init_static_internal ((struct _IO_strfile_ *) &new_f.ofile,
- obstack_base (obstack),
- size, obstack_next_free (obstack));
- /* Now allocate the rest of the current chunk. */
- assert (size == (new_f.ofile.file.file._IO_write_end
- - new_f.ofile.file.file._IO_write_base));
- assert (new_f.ofile.file.file._IO_write_ptr
- == (new_f.ofile.file.file._IO_write_base
- + obstack_object_size (obstack)));
- obstack_blank_fast (obstack, room);
-
- new_f.ofile.obstack = obstack;
-
- /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
- can only come from read-only format strings. */
- if (flags > 0)
- new_f.ofile.file.file._flags2 |= _IO_FLAGS2_FORTIFY;
-
- result = _IO_vfprintf (&new_f.ofile.file.file, format, args);
-
- /* Shrink the buffer to the space we really currently need. */
- obstack_blank_fast (obstack, (new_f.ofile.file.file._IO_write_ptr
- - new_f.ofile.file.file._IO_write_end));
-
- return result;
-}
-libc_hidden_def (__obstack_vprintf_chk)
-
-
-int
-__obstack_printf_chk (struct obstack *obstack, int flags, const char *format,
- ...)
-{
- int result;
- va_list ap;
- va_start (ap, format);
- result = __obstack_vprintf_chk (obstack, flags, format, ap);
- va_end (ap);
- return result;
-}
diff --git a/debug/pcprofile.c b/debug/pcprofile.c
deleted file mode 100644
index b6402ef63b..0000000000
--- a/debug/pcprofile.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Profile PC and write result to FIFO.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-/* Nonzero if we are actually doing something. */
-static int active;
-
-/* The file descriptor of the FIFO. */
-static int fd;
-
-
-static void
-__attribute__ ((constructor))
-install (void)
-{
- /* See whether the environment variable `PCPROFILE_OUTPUT' is defined.
- If yes, it should name a FIFO. We open it and mark ourself as active. */
- const char *outfile = getenv ("PCPROFILE_OUTPUT");
-
- if (outfile != NULL && *outfile != '\0')
- {
- fd = open (outfile, O_RDWR | O_CREAT, 0666);
-
- if (fd != -1)
- {
- uint32_t word;
-
- active = 1;
-
- /* Write a magic word which tells the reader about the byte
- order and the size of the following entries. */
- word = 0xdeb00000 | sizeof (void *);
- if (TEMP_FAILURE_RETRY (write (fd, &word, 4)) != 4)
- {
- /* If even this fails we shouldn't try further. */
- close (fd);
- fd = -1;
- active = 0;
- }
- }
- }
-}
-
-
-static void
-__attribute__ ((destructor))
-uninstall (void)
-{
- if (active)
- close (fd);
-}
-
-
-void
-__cyg_profile_func_enter (void *this_fn, void *call_site)
-{
- void *buf[2];
-
- if (! active)
- return;
-
- /* Now write out the current position and that of the caller. We do
- this now, and don't cache the because we want real-time output. */
- buf[0] = this_fn;
- buf[1] = call_site;
-
- write (fd, buf, sizeof buf);
-}
-/* We don't handle entry and exit differently here. */
-strong_alias (__cyg_profile_func_enter, __cyg_profile_func_exit)
diff --git a/debug/pcprofiledump.c b/debug/pcprofiledump.c
deleted file mode 100644
index a32cdefcf9..0000000000
--- a/debug/pcprofiledump.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/* Dump information generated by PC profiling.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* This is mainly an example. It shows how programs which want to use
- the information should read the file. */
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <argp.h>
-#include <byteswap.h>
-#include <errno.h>
-#include <error.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <libintl.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdint.h>
-
-#include "../version.h"
-
-#define PACKAGE _libc_intl_domainname
-
-#ifndef _
-# define _(Str) gettext (Str)
-#endif
-
-#ifndef N_
-# define N_(Str) Str
-#endif
-
-/* Definitions of arguments for argp functions. */
-static const struct argp_option options[] =
-{
- { "unbuffered", 'u', NULL, 0, N_("Don't buffer output") },
- { NULL, 0, NULL, 0, NULL }
-};
-
-/* Short description of program. */
-static const char doc[] = N_("Dump information generated by PC profiling.");
-
-/* Strings for arguments in help texts. */
-static const char args_doc[] = N_("[FILE]");
-
-/* Function to print some extra text in the help message. */
-static char *more_help (int key, const char *text, void *input);
-
-/* Prototype for option handler. */
-static error_t parse_opt (int key, char *arg, struct argp_state *state);
-
-/* Name and version of program. */
-static void print_version (FILE *stream, struct argp_state *state);
-void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
-
-/* Data structure to communicate with argp functions. */
-static struct argp argp =
-{
- options, parse_opt, args_doc, doc, NULL, more_help
-};
-
-
-int
-main (int argc, char *argv[])
-{
- /* Set locale via LC_ALL. */
- setlocale (LC_ALL, "");
-
- /* Set the text message domain. */
- textdomain (PACKAGE);
-
- /* Parse and process arguments. */
- int remaining;
- argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-
- int fd;
- if (remaining == argc)
- fd = STDIN_FILENO;
- else if (remaining + 1 != argc)
- {
- argp_help (&argp, stdout, ARGP_HELP_SEE | ARGP_HELP_EXIT_ERR,
- program_invocation_short_name);
- exit (1);
- }
- else
- {
- /* Open the given file. */
- fd = open (argv[remaining], O_RDONLY);
-
- if (fd == -1)
- error (EXIT_FAILURE, errno, _("cannot open input file"));
- }
-
- /* Read the first 4-byte word. It contains the information about
- the word size and the endianess. */
- uint32_t word;
- if (TEMP_FAILURE_RETRY (read (fd, &word, 4)) != 4)
- error (EXIT_FAILURE, errno, _("cannot read header"));
-
- /* Check whether we have to swap the byte order. */
- int must_swap = (word & 0xfffffff0) == bswap_32 (0xdeb00000);
- if (must_swap)
- word = bswap_32 (word);
-
- /* We have two loops, one for 32 bit pointers, one for 64 bit pointers. */
- if (word == 0xdeb00004)
- {
- union
- {
- uint32_t ptrs[2];
- char bytes[8];
- } pair;
-
- while (1)
- {
- size_t len = sizeof (pair);
- size_t n;
-
- while (len > 0
- && (n = TEMP_FAILURE_RETRY (read (fd, &pair.bytes[8 - len],
- len))) != 0)
- len -= n;
-
- if (len != 0)
- /* Nothing to read. */
- break;
-
- printf ("this = %#010" PRIx32 ", caller = %#010" PRIx32 "\n",
- must_swap ? bswap_32 (pair.ptrs[0]) : pair.ptrs[0],
- must_swap ? bswap_32 (pair.ptrs[1]) : pair.ptrs[1]);
- }
- }
- else if (word == 0xdeb00008)
- {
- union
- {
- uint64_t ptrs[2];
- char bytes[16];
- } pair;
-
- while (1)
- {
- size_t len = sizeof (pair);
- size_t n;
-
- while (len > 0
- && (n = TEMP_FAILURE_RETRY (read (fd, &pair.bytes[8 - len],
- len))) != 0)
- len -= n;
-
- if (len != 0)
- /* Nothing to read. */
- break;
-
- printf ("this = %#018" PRIx64 ", caller = %#018" PRIx64 "\n",
- must_swap ? bswap_64 (pair.ptrs[0]) : pair.ptrs[0],
- must_swap ? bswap_64 (pair.ptrs[1]) : pair.ptrs[1]);
- }
- }
- else
- /* This should not happen. */
- error (EXIT_FAILURE, 0, _("invalid pointer size"));
-
- /* Clean up. */
- close (fd);
-
- return 0;
-}
-
-static error_t
-parse_opt (int key, char *arg, struct argp_state *state)
-{
- switch (key)
- {
- case 'u':
- setbuf (stdout, NULL);
- break;
- default:
- return ARGP_ERR_UNKNOWN;
- }
- return 0;
-}
-
-static char *
-more_help (int key, const char *text, void *input)
-{
- char *tp = NULL;
- switch (key)
- {
- case ARGP_KEY_HELP_EXTRA:
- /* We print some extra information. */
- if (asprintf (&tp, gettext ("\
-For bug reporting instructions, please see:\n\
-%s.\n"), REPORT_BUGS_TO) < 0)
- return NULL;
- return tp;
- default:
- break;
- }
- return (char *) text;
-}
-
-/* Print the version information. */
-static void
-print_version (FILE *stream, struct argp_state *state)
-{
- fprintf (stream, "pcprofiledump %s%s\n", PKGVERSION, VERSION);
- fprintf (stream, gettext ("\
-Copyright (C) %s Free Software Foundation, Inc.\n\
-This is free software; see the source for copying conditions. There is NO\n\
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2017");
- fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
-}
diff --git a/debug/poll_chk.c b/debug/poll_chk.c
deleted file mode 100644
index 5f6a707b9a..0000000000
--- a/debug/poll_chk.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2012-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/poll.h>
-
-
-int
-__poll_chk (struct pollfd *fds, nfds_t nfds, int timeout, __SIZE_TYPE__ fdslen)
-{
- if (fdslen / sizeof (*fds) < nfds)
- __chk_fail ();
-
- return __poll (fds, nfds, timeout);
-}
diff --git a/debug/ppoll_chk.c b/debug/ppoll_chk.c
deleted file mode 100644
index 1b80de8eb8..0000000000
--- a/debug/ppoll_chk.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2012-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/poll.h>
-
-
-int
-__ppoll_chk (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
- const __sigset_t *ss, __SIZE_TYPE__ fdslen)
-{
- if (fdslen / sizeof (*fds) < nfds)
- __chk_fail ();
-
- return ppoll (fds, nfds, timeout, ss);
-}
diff --git a/debug/pread64_chk.c b/debug/pread64_chk.c
deleted file mode 100644
index b9cae453a6..0000000000
--- a/debug/pread64_chk.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-#include <sys/param.h>
-
-
-ssize_t
-__pread64_chk (int fd, void *buf, size_t nbytes, off64_t offset, size_t buflen)
-{
- if (nbytes > buflen)
- __chk_fail ();
-
- return __libc_pread64 (fd, buf, nbytes, offset);
-}
diff --git a/debug/pread_chk.c b/debug/pread_chk.c
deleted file mode 100644
index 408fbf35ef..0000000000
--- a/debug/pread_chk.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-#include <sys/param.h>
-
-
-ssize_t
-__pread_chk (int fd, void *buf, size_t nbytes, off_t offset, size_t buflen)
-{
- if (nbytes > buflen)
- __chk_fail ();
-
- return __pread (fd, buf, nbytes, offset);
-}
diff --git a/debug/printf_chk.c b/debug/printf_chk.c
deleted file mode 100644
index a481ed6795..0000000000
--- a/debug/printf_chk.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include "../libio/libioP.h"
-
-
-/* Write formatted output to stdout from the format string FORMAT. */
-int
-___printf_chk (int flag, const char *format, ...)
-{
- va_list ap;
- int done;
-
- _IO_acquire_lock_clear_flags2 (stdout);
- if (flag > 0)
- stdout->_flags2 |= _IO_FLAGS2_FORTIFY;
-
- va_start (ap, format);
- done = vfprintf (stdout, format, ap);
- va_end (ap);
-
- if (flag > 0)
- stdout->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (stdout);
-
- return done;
-}
-ldbl_strong_alias (___printf_chk, __printf_chk)
diff --git a/debug/read_chk.c b/debug/read_chk.c
deleted file mode 100644
index e72b64dfca..0000000000
--- a/debug/read_chk.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-#include <sys/param.h>
-#ifdef HAVE_INLINED_SYSCALLS
-# include <errno.h>
-# include <sysdep.h>
-#endif
-
-
-ssize_t
-__read_chk (int fd, void *buf, size_t nbytes, size_t buflen)
-{
- if (nbytes > buflen)
- __chk_fail ();
-
-#ifdef HAVE_INLINED_SYSCALLS
- return INLINE_SYSCALL (read, 3, fd, buf, nbytes);
-#else
- return __read (fd, buf, nbytes);
-#endif
-}
diff --git a/debug/readlink_chk.c b/debug/readlink_chk.c
deleted file mode 100644
index 03273b4c49..0000000000
--- a/debug/readlink_chk.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-#include <sys/param.h>
-#ifdef HAVE_INLINED_SYSCALLS
-# include <errno.h>
-# include <sysdep.h>
-#endif
-
-
-ssize_t
-__readlink_chk (const char *path, void *buf, size_t len, size_t buflen)
-{
- if (len > buflen)
- __chk_fail ();
-
-#ifdef HAVE_INLINED_SYSCALLS
- return INLINE_SYSCALL (readlink, 3, path, buf, len);
-#else
- return __readlink (path, buf, len);
-#endif
-}
diff --git a/debug/readlinkat_chk.c b/debug/readlinkat_chk.c
deleted file mode 100644
index e51e792aa6..0000000000
--- a/debug/readlinkat_chk.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2006-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-#include <sys/param.h>
-
-
-ssize_t
-__readlinkat_chk (int fd, const char *path, void *buf, size_t len,
- size_t buflen)
-{
- if (len > buflen)
- __chk_fail ();
-
- return readlinkat (fd, path, buf, len);
-}
diff --git a/debug/readonly-area.c b/debug/readonly-area.c
deleted file mode 100644
index 922e87fe63..0000000000
--- a/debug/readonly-area.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2004-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdlib.h>
-
-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable.
- Return -1 if it is writable. */
-
-int
-__readonly_area (const void *ptr, size_t size)
-{
- /* We cannot determine in general whether memory is writable or not.
- This must be handled in a system-dependent manner. to not
- unconditionally break code we need to return here a positive
- answer. This disables this security measure but that is the
- price people have to pay for using systems without a real
- implementation of this interface. */
- return 1;
-}
diff --git a/debug/realpath_chk.c b/debug/realpath_chk.c
deleted file mode 100644
index 5029fa6f25..0000000000
--- a/debug/realpath_chk.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <limits.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-char *
-__realpath_chk (const char *buf, char *resolved, size_t resolvedlen)
-{
-#ifdef PATH_MAX
- if (resolvedlen < PATH_MAX)
- __chk_fail ();
-
- return __realpath (buf, resolved);
-#else
- long int pathmax =__pathconf (buf, _PC_PATH_MAX);
- if (pathmax != -1)
- {
- /* We do have a fixed limit. */
- if (resolvedlen < pathmax)
- __chk_fail ();
-
- return __realpath (buf, resolved);
- }
-
- /* Since there is no fixed limit we check whether the size is large
- enough. */
- char *res = __realpath (buf, NULL);
- if (res != NULL)
- {
- size_t actlen = strlen (res) + 1;
- if (actlen > resolvedlen)
- __chk_fail ();
-
- memcpy (resolved, res, actlen);
- free (res);
- res = resolved;
- }
-
- return res;
-#endif
-}
diff --git a/debug/recv_chk.c b/debug/recv_chk.c
deleted file mode 100644
index bfd95f4095..0000000000
--- a/debug/recv_chk.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/param.h>
-#include <sys/socket.h>
-
-
-ssize_t
-__recv_chk (int fd, void *buf, size_t n, size_t buflen, int flags)
-{
- if (n > buflen)
- __chk_fail ();
-
- return __recv (fd, buf, n, flags);
-}
diff --git a/debug/recvfrom_chk.c b/debug/recvfrom_chk.c
deleted file mode 100644
index 7b9a08b00a..0000000000
--- a/debug/recvfrom_chk.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/param.h>
-#include <sys/socket.h>
-
-
-ssize_t
-__recvfrom_chk (int fd, void *buf, size_t n, size_t buflen, int flags,
- __SOCKADDR_ARG addr, socklen_t *addr_len)
-{
- if (n > buflen)
- __chk_fail ();
-
- return __recvfrom (fd, buf, n, flags, addr, addr_len);
-}
diff --git a/debug/segfault.c b/debug/segfault.c
deleted file mode 100644
index 78c1cf5d1d..0000000000
--- a/debug/segfault.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/* Catch segmentation faults and print backtrace.
- Copyright (C) 1998-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <alloca.h>
-#include <ctype.h>
-#include <errno.h>
-#include <execinfo.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <_itoa.h>
-#include <ldsodefs.h>
-
-/* This file defines macros to access the content of the sigcontext element
- passed up by the signal handler. */
-#include <sigcontextinfo.h>
-
-/* Get code to possibly dump the content of all registers. */
-#include <register-dump.h>
-
-/* We'll use this a lot. */
-#define WRITE_STRING(s) write (fd, s, strlen (s))
-
-/* Name of the output file. */
-static const char *fname;
-
-
-/* We better should not use `strerror' since it can call far too many
- other functions which might fail. Do it here ourselves. */
-static void
-write_strsignal (int fd, int signal)
-{
- if (signal < 0 || signal >= _NSIG || _sys_siglist[signal] == NULL)
- {
- char buf[30];
- char *ptr = _itoa_word (signal, &buf[sizeof (buf)], 10, 0);
- WRITE_STRING ("signal ");
- write (fd, buf, &buf[sizeof (buf)] - ptr);
- }
- else
- WRITE_STRING (_sys_siglist[signal]);
-}
-
-
-/* This function is called when a segmentation fault is caught. The system
- is in an unstable state now. This means especially that malloc() might
- not work anymore. */
-static void
-catch_segfault (int signal, SIGCONTEXT ctx)
-{
- int fd, cnt, i;
- void **arr;
- struct sigaction sa;
- uintptr_t pc;
-
- /* This is the name of the file we are writing to. If none is given
- or we cannot write to this file write to stderr. */
- fd = 2;
- if (fname != NULL)
- {
- fd = open (fname, O_TRUNC | O_WRONLY | O_CREAT, 0666);
- if (fd == -1)
- fd = 2;
- }
-
- WRITE_STRING ("*** ");
- write_strsignal (fd, signal);
- WRITE_STRING ("\n");
-
-#ifdef REGISTER_DUMP
- REGISTER_DUMP;
-#endif
-
- WRITE_STRING ("\nBacktrace:\n");
-
- /* Get the backtrace. */
- arr = alloca (256 * sizeof (void *));
- cnt = backtrace (arr, 256);
-
- /* Now try to locate the PC from signal context in the backtrace.
- Normally it will be found at arr[2], but it might appear later
- if there were some signal handler wrappers. Allow a few bytes
- difference to cope with as many arches as possible. */
- pc = (uintptr_t) GET_PC (ctx);
- for (i = 0; i < cnt; ++i)
- if ((uintptr_t) arr[i] >= pc - 16 && (uintptr_t) arr[i] <= pc + 16)
- break;
-
- /* If we haven't found it, better dump full backtrace even including
- the signal handler frames instead of not dumping anything. */
- if (i == cnt)
- i = 0;
-
- /* Now generate nicely formatted output. */
- __backtrace_symbols_fd (arr + i, cnt - i, fd);
-
-#ifdef HAVE_PROC_SELF
- /* Now the link map. */
- int mapfd = open ("/proc/self/maps", O_RDONLY);
- if (mapfd != -1)
- {
- write (fd, "\nMemory map:\n\n", 14);
-
- char buf[256];
- ssize_t n;
-
- while ((n = TEMP_FAILURE_RETRY (read (mapfd, buf, sizeof (buf)))) > 0)
- TEMP_FAILURE_RETRY (write (fd, buf, n));
-
- close (mapfd);
- }
-#endif
-
- /* Pass on the signal (so that a core file is produced). */
- sa.sa_handler = SIG_DFL;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
- sigaction (signal, &sa, NULL);
- raise (signal);
-}
-
-
-static void
-__attribute__ ((constructor))
-install_handler (void)
-{
- struct sigaction sa;
- const char *sigs = getenv ("SEGFAULT_SIGNALS");
- const char *name;
-
- sa.sa_handler = (void *) catch_segfault;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = SA_RESTART;
-
- /* Maybe we are expected to use an alternative stack. */
- if (getenv ("SEGFAULT_USE_ALTSTACK") != 0)
- {
- void *stack_mem = malloc (2 * SIGSTKSZ);
- stack_t ss;
-
- if (stack_mem != NULL)
- {
- ss.ss_sp = stack_mem;
- ss.ss_flags = 0;
- ss.ss_size = 2 * SIGSTKSZ;
-
- if (sigaltstack (&ss, NULL) == 0)
- sa.sa_flags |= SA_ONSTACK;
- }
- }
-
- if (sigs == NULL)
- sigaction (SIGSEGV, &sa, NULL);
- else if (sigs[0] == '\0')
- /* Do not do anything. */
- return;
- else
- {
- const char *where;
- int all = __strcasecmp (sigs, "all") == 0;
-
-#define INSTALL_FOR_SIG(sig, name) \
- where = __strcasestr (sigs, name); \
- if (all || (where != NULL \
- && (where == sigs || !isalnum (where[-1])) \
- && !isalnum (where[sizeof (name) - 1]))) \
- sigaction (sig, &sa, NULL);
-
- INSTALL_FOR_SIG (SIGSEGV, "segv");
- INSTALL_FOR_SIG (SIGILL, "ill");
-#ifdef SIGBUS
- INSTALL_FOR_SIG (SIGBUS, "bus");
-#endif
-#ifdef SIGSTKFLT
- INSTALL_FOR_SIG (SIGSTKFLT, "stkflt");
-#endif
- INSTALL_FOR_SIG (SIGABRT, "abrt");
- INSTALL_FOR_SIG (SIGFPE, "fpe");
- }
-
- /* Preserve the output file name if there is any given. */
- name = getenv ("SEGFAULT_OUTPUT_NAME");
- if (name != NULL && name[0] != '\0')
- {
- int ret = access (name, R_OK | W_OK);
-
- if (ret == 0 || (ret == -1 && errno == ENOENT))
- fname = __strdup (name);
- }
-}
diff --git a/debug/snprintf_chk.c b/debug/snprintf_chk.c
deleted file mode 100644
index 4a79cc59f0..0000000000
--- a/debug/snprintf_chk.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <libioP.h>
-#include <stdarg.h>
-#include <stdio.h>
-
-
-/* Write formatted output into S, according to the format
- string FORMAT, writing no more than MAXLEN characters. */
-/* VARARGS5 */
-int
-___snprintf_chk (char *s, size_t maxlen, int flags, size_t slen,
- const char *format, ...)
-{
- va_list arg;
- int done;
-
- va_start (arg, format);
- done = __vsnprintf_chk (s, maxlen, flags, slen, format, arg);
- va_end (arg);
-
- return done;
-}
-ldbl_strong_alias (___snprintf_chk, __snprintf_chk)
diff --git a/debug/sprintf_chk.c b/debug/sprintf_chk.c
deleted file mode 100644
index b4b89596f1..0000000000
--- a/debug/sprintf_chk.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <libioP.h>
-#include <stdarg.h>
-#include <stdio.h>
-
-/* Write formatted output into S, according to the format string FORMAT. */
-/* VARARGS4 */
-int
-___sprintf_chk (char *s, int flags, size_t slen, const char *format, ...)
-{
- va_list arg;
- int done;
-
- va_start (arg, format);
- done = __vsprintf_chk (s, flags, slen, format, arg);
- va_end (arg);
-
- return done;
-}
-ldbl_strong_alias (___sprintf_chk, __sprintf_chk)
diff --git a/debug/stack_chk_fail.c b/debug/stack_chk_fail.c
deleted file mode 100644
index 4f7346481d..0000000000
--- a/debug/stack_chk_fail.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-
-extern char **__libc_argv attribute_hidden;
-
-void
-__attribute__ ((noreturn))
-__stack_chk_fail (void)
-{
- __fortify_fail ("stack smashing detected");
-}
-
-strong_alias (__stack_chk_fail, __stack_chk_fail_local)
diff --git a/debug/stack_chk_fail_local.c b/debug/stack_chk_fail_local.c
deleted file mode 100644
index eb0a759c4b..0000000000
--- a/debug/stack_chk_fail_local.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (C) 2005-2017 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.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/cdefs.h>
-
-extern void __stack_chk_fail (void) __attribute__ ((noreturn));
-
-/* On some architectures, this helps needless PIC pointer setup
- that would be needed just for the __stack_chk_fail call. */
-
-void __attribute__ ((noreturn)) attribute_hidden
-__stack_chk_fail_local (void)
-{
- __stack_chk_fail ();
-}
diff --git a/debug/stpcpy_chk.c b/debug/stpcpy_chk.c
deleted file mode 100644
index 3f140e61c5..0000000000
--- a/debug/stpcpy_chk.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1992-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <string.h>
-
-
-/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */
-char *
-__stpcpy_chk (char *dest, const char *src, size_t destlen)
-{
- size_t len = strlen (src);
- if (len >= destlen)
- __chk_fail ();
-
- return memcpy (dest, src, len + 1) + len;
-}
diff --git a/debug/stpncpy_chk.c b/debug/stpncpy_chk.c
deleted file mode 100644
index 52d2634ad4..0000000000
--- a/debug/stpncpy_chk.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1993-2017 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
- <http://www.gnu.org/licenses/>. */
-
-/* This is almost copied from strncpy.c, written by Torbjorn Granlund. */
-
-#include <string.h>
-
-
-/* Copy no more than N characters of SRC to DEST, returning the address of
- the terminating '\0' in DEST, if any, or else DEST + N. */
-char *
-__stpncpy_chk (char *dest, const char *src, size_t n, size_t destlen)
-{
- if (__builtin_expect (destlen < n, 0))
- __chk_fail ();
-
- return __stpncpy (dest, src, n);
-}
diff --git a/debug/strcat_chk.c b/debug/strcat_chk.c
deleted file mode 100644
index 610c6bc358..0000000000
--- a/debug/strcat_chk.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <string.h>
-#include <memcopy.h>
-
-
-/* Append SRC on the end of DEST. */
-char *
-__strcat_chk (char *dest, const char *src, size_t destlen)
-{
- char *s1 = dest;
- const char *s2 = src;
- char c;
-
- /* Find the end of the string. */
- do
- {
- if (__glibc_unlikely (destlen-- == 0))
- __chk_fail ();
- c = *s1++;
- }
- while (c != '\0');
-
- /* Make S1 point before the next character, so we can increment
- it while memory is read (wins on pipelined cpus). */
- ++destlen;
- s1 -= 2;
-
- do
- {
- if (__glibc_unlikely (destlen-- == 0))
- __chk_fail ();
- c = *s2++;
- *++s1 = c;
- }
- while (c != '\0');
-
- return dest;
-}
diff --git a/debug/strcpy_chk.c b/debug/strcpy_chk.c
deleted file mode 100644
index 3fb1cac10e..0000000000
--- a/debug/strcpy_chk.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <string.h>
-#include <memcopy.h>
-
-#undef strcpy
-
-/* Copy SRC to DEST with checking of destination buffer overflow. */
-char *
-__strcpy_chk (char *dest, const char *src, size_t destlen)
-{
- size_t len = strlen (src);
- if (len >= destlen)
- __chk_fail ();
-
- return memcpy (dest, src, len + 1);
-}
diff --git a/debug/strncat_chk.c b/debug/strncat_chk.c
deleted file mode 100644
index d285f54448..0000000000
--- a/debug/strncat_chk.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <string.h>
-
-#include <memcopy.h>
-
-
-char *
-__strncat_chk (char *s1, const char *s2, size_t n, size_t s1len)
-{
- char c;
- char *s = s1;
-
- /* Find the end of S1. */
- do
- {
- if (__glibc_unlikely (s1len-- == 0))
- __chk_fail ();
- c = *s1++;
- }
- while (c != '\0');
-
- /* Make S1 point before next character, so we can increment
- it while memory is read (wins on pipelined cpus). */
- ++s1len;
- s1 -= 2;
-
- if (n >= 4)
- {
- size_t n4 = n >> 2;
- do
- {
- if (__glibc_unlikely (s1len-- == 0))
- __chk_fail ();
- c = *s2++;
- *++s1 = c;
- if (c == '\0')
- return s;
- if (__glibc_unlikely (s1len-- == 0))
- __chk_fail ();
- c = *s2++;
- *++s1 = c;
- if (c == '\0')
- return s;
- if (__glibc_unlikely (s1len-- == 0))
- __chk_fail ();
- c = *s2++;
- *++s1 = c;
- if (c == '\0')
- return s;
- if (__glibc_unlikely (s1len-- == 0))
- __chk_fail ();
- c = *s2++;
- *++s1 = c;
- if (c == '\0')
- return s;
- } while (--n4 > 0);
- n &= 3;
- }
-
- while (n > 0)
- {
- if (__glibc_unlikely (s1len-- == 0))
- __chk_fail ();
- c = *s2++;
- *++s1 = c;
- if (c == '\0')
- return s;
- n--;
- }
-
- if (c != '\0')
- {
- if (__glibc_unlikely (s1len-- == 0))
- __chk_fail ();
- *++s1 = '\0';
- }
-
- return s;
-}
diff --git a/debug/strncpy_chk.c b/debug/strncpy_chk.c
deleted file mode 100644
index 1901532201..0000000000
--- a/debug/strncpy_chk.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <string.h>
-#include <memcopy.h>
-
-
-char *
-__strncpy_chk (char *s1, const char *s2, size_t n, size_t s1len)
-{
- if (__builtin_expect (s1len < n, 0))
- __chk_fail ();
-
- return strncpy (s1, s2, n);
-}
diff --git a/debug/swprintf_chk.c b/debug/swprintf_chk.c
deleted file mode 100644
index b5ae2a75f9..0000000000
--- a/debug/swprintf_chk.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <wchar.h>
-
-/* Write formatted output into S, according to the format string FORMAT. */
-/* VARARGS5 */
-int
-__swprintf_chk (wchar_t *s, size_t n, int flag, size_t s_len,
- const wchar_t *format, ...)
-{
- va_list arg;
- int done;
-
- va_start (arg, format);
- done = __vswprintf_chk (s, n, flag, s_len, format, arg);
- va_end (arg);
-
- return done;
-}
diff --git a/debug/test-stpcpy_chk.c b/debug/test-stpcpy_chk.c
deleted file mode 100644
index 2bec1c7f3e..0000000000
--- a/debug/test-stpcpy_chk.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Test and measure stpcpy checking functions.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Written by Jakub Jelinek <jakub@redhat.com>, 1999.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#define STRCPY_RESULT(dst, len) ((dst) + (len))
-#define TEST_MAIN
-#define TEST_NAME "stpcpy_chk"
-#include "../string/test-string.h"
-
-extern void __attribute__ ((noreturn)) __chk_fail (void);
-char *simple_stpcpy_chk (char *, const char *, size_t);
-extern char *normal_stpcpy (char *, const char *, size_t)
- __asm ("stpcpy");
-extern char *__stpcpy_chk (char *, const char *, size_t);
-
-IMPL (simple_stpcpy_chk, 0)
-IMPL (normal_stpcpy, 1)
-IMPL (__stpcpy_chk, 2)
-
-char *
-simple_stpcpy_chk (char *dst, const char *src, size_t len)
-{
- if (! len)
- __chk_fail ();
- while ((*dst++ = *src++) != '\0')
- if (--len == 0)
- __chk_fail ();
- return dst - 1;
-}
-
-#include "test-strcpy_chk.c"
diff --git a/debug/test-strcpy_chk.c b/debug/test-strcpy_chk.c
deleted file mode 100644
index 8b729bd6ba..0000000000
--- a/debug/test-strcpy_chk.c
+++ /dev/null
@@ -1,356 +0,0 @@
-/* Test and measure __strcpy_chk functions.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Written by Jakub Jelinek <jakub@redhat.com>, 1999.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef STRCPY_RESULT
-# define STRCPY_RESULT(dst, len) dst
-# define TEST_MAIN
-# define TEST_NAME "strcpy_chk"
-# include "../string/test-string.h"
-
-/* This test case implicitly tests the availability of the __chk_fail
- symbol, which is part of the public ABI and may be used
- externally. */
-extern void __attribute__ ((noreturn)) __chk_fail (void);
-char *simple_strcpy_chk (char *, const char *, size_t);
-extern char *normal_strcpy (char *, const char *, size_t)
- __asm ("strcpy");
-extern char *__strcpy_chk (char *, const char *, size_t);
-
-IMPL (simple_strcpy_chk, 0)
-IMPL (normal_strcpy, 1)
-IMPL (__strcpy_chk, 2)
-
-char *
-simple_strcpy_chk (char *dst, const char *src, size_t len)
-{
- char *ret = dst;
- if (! len)
- __chk_fail ();
- while ((*dst++ = *src++) != '\0')
- if (--len == 0)
- __chk_fail ();
- return ret;
-}
-#endif
-
-#include <fcntl.h>
-#include <paths.h>
-#include <setjmp.h>
-#include <signal.h>
-
-static int test_main (void);
-#define TEST_FUNCTION test_main
-#include <support/test-driver.c>
-#include <support/support.h>
-
-volatile int chk_fail_ok;
-jmp_buf chk_fail_buf;
-
-static void
-handler (int sig)
-{
- if (chk_fail_ok)
- {
- chk_fail_ok = 0;
- longjmp (chk_fail_buf, 1);
- }
- else
- _exit (127);
-}
-
-typedef char *(*proto_t) (char *, const char *, size_t);
-
-static void
-do_one_test (impl_t *impl, char *dst, const char *src,
- size_t len, size_t dlen)
-{
- char *res;
- if (dlen <= len)
- {
- if (impl->test == 1)
- return;
-
- chk_fail_ok = 1;
- if (setjmp (chk_fail_buf) == 0)
- {
- res = CALL (impl, dst, src, dlen);
- printf ("*** Function %s (%zd; %zd) did not __chk_fail\n",
- impl->name, len, dlen);
- chk_fail_ok = 0;
- ret = 1;
- }
- return;
- }
- else
- res = CALL (impl, dst, src, dlen);
-
- if (res != STRCPY_RESULT (dst, len))
- {
- printf ("Wrong result in function %s %p %p\n", impl->name,
- res, STRCPY_RESULT (dst, len));
- ret = 1;
- return;
- }
-
- if (strcmp (dst, src) != 0)
- {
- printf ("Wrong result in function %s dst \"%s\" src \"%s\"\n",
- impl->name, dst, src);
- ret = 1;
- return;
- }
-}
-
-static void
-do_test (size_t align1, size_t align2, size_t len, size_t dlen, int max_char)
-{
- size_t i;
- char *s1, *s2;
-
- align1 &= 7;
- if (align1 + len >= page_size)
- return;
-
- align2 &= 7;
- if (align2 + len >= page_size)
- return;
-
- s1 = (char *) buf1 + align1;
- s2 = (char *) buf2 + align2;
-
- for (i = 0; i < len; i++)
- s1[i] = 32 + 23 * i % (max_char - 32);
- s1[len] = 0;
-
- FOR_EACH_IMPL (impl, 0)
- do_one_test (impl, s2, s1, len, dlen);
-}
-
-static void
-do_random_tests (void)
-{
- size_t i, j, n, align1, align2, len, dlen;
- unsigned char *p1 = buf1 + page_size - 512;
- unsigned char *p2 = buf2 + page_size - 512;
- unsigned char *res;
-
- for (n = 0; n < ITERATIONS; n++)
- {
- align1 = random () & 31;
- if (random () & 1)
- align2 = random () & 31;
- else
- align2 = align1 + (random () & 24);
- len = random () & 511;
- j = align1;
- if (align2 > j)
- j = align2;
- if (len + j >= 511)
- len = 510 - j - (random () & 7);
- j = len + align1 + 64;
- if (j > 512)
- j = 512;
- for (i = 0; i < j; i++)
- {
- if (i == len + align1)
- p1[i] = 0;
- else
- {
- p1[i] = random () & 255;
- if (i >= align1 && i < len + align1 && !p1[i])
- p1[i] = (random () & 127) + 3;
- }
- }
-
- switch (random () & 7)
- {
- case 0:
- dlen = len - (random () & 31);
- if (dlen > len)
- dlen = len;
- break;
- case 1:
- dlen = (size_t) -1;
- break;
- case 2:
- dlen = len + 1 + (random () & 65535);
- break;
- case 3:
- dlen = len + 1 + (random () & 255);
- break;
- case 4:
- dlen = len + 1 + (random () & 31);
- break;
- case 5:
- dlen = len + 1 + (random () & 7);
- break;
- case 6:
- dlen = len + 1 + (random () & 3);
- break;
- default:
- dlen = len + 1;
- break;
- }
-
- FOR_EACH_IMPL (impl, 1)
- {
- if (dlen <= len)
- {
- if (impl->test != 1)
- {
- chk_fail_ok = 1;
- if (setjmp (chk_fail_buf) == 0)
- {
- res = (unsigned char *)
- CALL (impl, (char *) p2 + align2,
- (char *) p1 + align1, dlen);
- printf ("Iteration %zd - did not __chk_fail\n", n);
- chk_fail_ok = 0;
- ret = 1;
- }
- }
- continue;
- }
- memset (p2 - 64, '\1', 512 + 64);
- res = (unsigned char *)
- CALL (impl, (char *) p2 + align2, (char *) p1 + align1, dlen);
- if (res != STRCPY_RESULT (p2 + align2, len))
- {
- printf ("\
-Iteration %zd - wrong result in function %s (%zd, %zd, %zd) %p != %p\n",
- n, impl->name, align1, align2, len, res,
- STRCPY_RESULT (p2 + align2, len));
- ret = 1;
- }
- for (j = 0; j < align2 + 64; ++j)
- {
- if (p2[j - 64] != '\1')
- {
- printf ("\
-Iteration %zd - garbage before, %s (%zd, %zd, %zd)\n",
- n, impl->name, align1, align2, len);
- ret = 1;
- break;
- }
- }
- for (j = align2 + len + 1; j < 512; ++j)
- {
- if (p2[j] != '\1')
- {
- printf ("\
-Iteration %zd - garbage after, %s (%zd, %zd, %zd)\n",
- n, impl->name, align1, align2, len);
- ret = 1;
- break;
- }
- }
- if (memcmp (p1 + align1, p2 + align2, len + 1))
- {
- printf ("\
-Iteration %zd - different strings, %s (%zd, %zd, %zd)\n",
- n, impl->name, align1, align2, len);
- ret = 1;
- }
- }
- }
-}
-
-static int
-test_main (void)
-{
- size_t i;
-
- set_fortify_handler (handler);
-
- test_init ();
-
- printf ("%23s", "");
- FOR_EACH_IMPL (impl, 0)
- printf ("\t%s", impl->name);
- putchar ('\n');
-
- for (i = 0; i < 16; ++i)
- {
- do_test (0, 0, i, i + 1, 127);
- do_test (0, 0, i, i + 1, 255);
- do_test (0, i, i, i + 1, 127);
- do_test (i, 0, i, i + 1, 255);
- }
-
- for (i = 1; i < 8; ++i)
- {
- do_test (0, 0, 8 << i, (8 << i) + 1, 127);
- do_test (8 - i, 2 * i, (8 << i), (8 << i) + 1, 127);
- }
-
- for (i = 1; i < 8; ++i)
- {
- do_test (i, 2 * i, (8 << i), (8 << i) + 1, 127);
- do_test (2 * i, i, (8 << i), (8 << i) + 1, 255);
- do_test (i, i, (8 << i), (8 << i) + 1, 127);
- do_test (i, i, (8 << i), (8 << i) + 1, 255);
- }
-
- for (i = 0; i < 16; ++i)
- {
- do_test (0, 0, i, i + 256, 127);
- do_test (0, 0, i, i + 256, 255);
- do_test (0, i, i, i + 256, 127);
- do_test (i, 0, i, i + 256, 255);
- }
-
- for (i = 1; i < 8; ++i)
- {
- do_test (0, 0, 8 << i, (8 << i) + 256, 127);
- do_test (8 - i, 2 * i, (8 << i), (8 << i) + 256, 127);
- }
-
- for (i = 1; i < 8; ++i)
- {
- do_test (i, 2 * i, (8 << i), (8 << i) + 256, 127);
- do_test (2 * i, i, (8 << i), (8 << i) + 256, 255);
- do_test (i, i, (8 << i), (8 << i) + 256, 127);
- do_test (i, i, (8 << i), (8 << i) + 256, 255);
- }
-
- for (i = 0; i < 16; ++i)
- {
- do_test (0, 0, i, i, 127);
- do_test (0, 0, i, i + 2, 255);
- do_test (0, i, i, i + 3, 127);
- do_test (i, 0, i, i + 4, 255);
- }
-
- for (i = 1; i < 8; ++i)
- {
- do_test (0, 0, 8 << i, (8 << i) - 15, 127);
- do_test (8 - i, 2 * i, (8 << i), (8 << i) + 5, 127);
- }
-
- for (i = 1; i < 8; ++i)
- {
- do_test (i, 2 * i, (8 << i), (8 << i) + i, 127);
- do_test (2 * i, i, (8 << i), (8 << i) + (i - 1), 255);
- do_test (i, i, (8 << i), (8 << i) + i + 2, 127);
- do_test (i, i, (8 << i), (8 << i) + i + 3, 255);
- }
-
- do_random_tests ();
- return ret;
-}
diff --git a/debug/tst-backtrace.h b/debug/tst-backtrace.h
deleted file mode 100644
index ba173c90b0..0000000000
--- a/debug/tst-backtrace.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Test backtrace and backtrace_symbols: common code for examining
- backtraces.
- Copyright (C) 2013-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <string.h>
-
-/* Set to a non-zero value if the test fails. */
-volatile int ret;
-
-/* Accesses to X are used to prevent optimization. */
-volatile int x;
-
-/* Called if the test fails. */
-#define FAIL() \
- do { printf ("Failure on line %d\n", __LINE__); ret = 1; } while (0)
-
-/* Use this attribute to prevent inlining, so that all expected frames
- are present. */
-#define NO_INLINE __attribute__ ((noinline, noclone, weak))
-
-/* Look for a match in SYM from backtrace_symbols to NAME, a fragment
- of a function name. Ignore the filename before '(', but presume
- that the function names are chosen so they cannot accidentally
- match the hex offset before the closing ')'. */
-
-static inline bool
-match (const char *sym, const char *name)
-{
- char *p = strchr (sym, '(');
- return p != NULL && strstr (p, name) != NULL;
-}
diff --git a/debug/tst-backtrace2.c b/debug/tst-backtrace2.c
deleted file mode 100644
index 86f88dee82..0000000000
--- a/debug/tst-backtrace2.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Test backtrace and backtrace_symbols.
- Copyright (C) 2009-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <execinfo.h>
-#include <search.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "tst-backtrace.h"
-
-/* The backtrace should include at least f1, f2, f3, and do_test. */
-#define NUM_FUNCTIONS 4
-
-NO_INLINE void
-fn1 (void)
-{
- void *addresses[NUM_FUNCTIONS];
- char **symbols;
- int n;
- int i;
-
- /* Get the backtrace addresses. */
- n = backtrace (addresses, sizeof (addresses) / sizeof (addresses[0]));
- printf ("Obtained backtrace with %d functions\n", n);
- /* Check that there are at least four functions. */
- if (n < NUM_FUNCTIONS)
- {
- FAIL ();
- return;
- }
- /* Convert them to symbols. */
- symbols = backtrace_symbols (addresses, n);
- /* Check that symbols were obtained. */
- if (symbols == NULL)
- {
- FAIL ();
- return;
- }
- for (i = 0; i < n; ++i)
- printf ("Function %d: %s\n", i, symbols[i]);
- /* Check that the function names obtained are accurate. */
- if (!match (symbols[0], "fn1"))
- {
- FAIL ();
- return;
- }
- /* Symbol names are not available for static functions, so we do not
- check f2. */
- if (!match (symbols[2], "fn3"))
- {
- FAIL ();
- return;
- }
- /* Symbol names are not available for static functions, so we do not
- check do_test. */
-}
-
-NO_INLINE int
-fn2 (void)
-{
- fn1 ();
- /* Prevent tail calls. */
- return x;
-}
-
-NO_INLINE int
-fn3 (void)
-{
- fn2();
- /* Prevent tail calls. */
- return x;
-}
-
-NO_INLINE int
-do_test (void)
-{
- /* Test BZ #18084. */
- void *buffer[1];
-
- if (backtrace (buffer, 0) != 0)
- FAIL ();
-
- fn3 ();
- return ret;
-}
-
-#include <support/test-driver.c>
diff --git a/debug/tst-backtrace3.c b/debug/tst-backtrace3.c
deleted file mode 100644
index e57a70bb11..0000000000
--- a/debug/tst-backtrace3.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Test backtrace and backtrace_symbols for recursive calls.
- Copyright (C) 2010-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <execinfo.h>
-#include <search.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "tst-backtrace.h"
-
-/* The backtrace should include at least 3 * fn, and do_test. */
-#define NUM_FUNCTIONS 4
-
-NO_INLINE int
-fn (int c)
-{
- void *addresses[NUM_FUNCTIONS];
- char **symbols;
- int n;
- int i;
-
- if (c > 0)
- {
- fn (c - 1);
- return x;
- }
- /* Get the backtrace addresses. */
- n = backtrace (addresses, sizeof (addresses) / sizeof (addresses[0]));
- printf ("Obtained backtrace with %d functions\n", n);
- /* Check that there are at least four functions. */
- if (n < NUM_FUNCTIONS)
- {
- FAIL ();
- return 1;
- }
- /* Convert them to symbols. */
- symbols = backtrace_symbols (addresses, n);
- /* Check that symbols were obtained. */
- if (symbols == NULL)
- {
- FAIL ();
- return 1;
- }
- for (i = 0; i < n; ++i)
- printf ("Function %d: %s\n", i, symbols[i]);
- /* Check that the function names obtained are accurate. */
- for (i = 0; i < n - 1; ++i)
- if (!match (symbols[i], "fn"))
- {
- FAIL ();
- return 1;
- }
- /* Symbol names are not available for static functions, so we do not
- check do_test. */
- return x;
-}
-
-NO_INLINE int
-do_test (void)
-{
- fn (2);
- return ret;
-}
-
-#include <support/test-driver.c>
diff --git a/debug/tst-backtrace4.c b/debug/tst-backtrace4.c
deleted file mode 100644
index 5c3423655c..0000000000
--- a/debug/tst-backtrace4.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Test backtrace and backtrace_symbols for signal frames.
- Copyright (C) 2011-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <execinfo.h>
-#include <search.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <signal.h>
-#include <unistd.h>
-
-#include "tst-backtrace.h"
-
-/* The backtrace should include at least handle_signal, a signal
- trampoline, 3 * fn, and do_test. */
-#define NUM_FUNCTIONS 6
-
-volatile int sig_handled = 0;
-
-void
-handle_signal (int signum)
-{
- void *addresses[NUM_FUNCTIONS];
- char **symbols;
- int n;
- int i;
-
- sig_handled = 1;
-
- /* Get the backtrace addresses. */
- n = backtrace (addresses, sizeof (addresses) / sizeof (addresses[0]));
- printf ("Obtained backtrace with %d functions (want at least %d)\n",
- n, NUM_FUNCTIONS);
- /* Check that there are at least NUM_FUNCTIONS functions. */
- if (n < NUM_FUNCTIONS)
- {
- FAIL ();
- /* Only return if we got no symbols at all. The partial output is
- still useful for debugging failures. */
- if (n <= 0)
- return;
- }
- /* Convert them to symbols. */
- symbols = backtrace_symbols (addresses, n);
- /* Check that symbols were obtained. */
- if (symbols == NULL)
- {
- FAIL ();
- return;
- }
- for (i = 0; i < n; ++i)
- printf ("Function %d: %s\n", i, symbols[i]);
- /* Check that the function names obtained are accurate. */
- if (!match (symbols[0], "handle_signal"))
- FAIL ();
- /* Do not check name for signal trampoline. */
- for (i = 2; i < n - 1; i++)
- if (!match (symbols[i], "fn"))
- {
- FAIL ();
- return;
- }
- /* Symbol names are not available for static functions, so we do not
- check do_test. */
-}
-
-NO_INLINE int
-fn (int c)
-{
- pid_t parent_pid, child_pid;
-
- if (c > 0)
- {
- fn (c - 1);
- return x;
- }
-
- signal (SIGUSR1, handle_signal);
- parent_pid = getpid ();
-
- child_pid = fork ();
- if (child_pid == (pid_t) -1)
- abort ();
- else if (child_pid == 0)
- {
- sleep (1);
- kill (parent_pid, SIGUSR1);
- _exit (0);
- }
-
- /* In the parent. */
- while (sig_handled == 0)
- ;
-
- return 0;
-}
-
-NO_INLINE int
-do_test (void)
-{
- fn (2);
- return ret;
-}
-
-#include <support/test-driver.c>
diff --git a/debug/tst-backtrace5.c b/debug/tst-backtrace5.c
deleted file mode 100644
index 0b85e4482e..0000000000
--- a/debug/tst-backtrace5.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Test backtrace and backtrace_symbols for signal frames, where a
- system call was interrupted by a signal.
- Copyright (C) 2011-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <execinfo.h>
-#include <search.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <signal.h>
-#include <unistd.h>
-
-#include "tst-backtrace.h"
-
-#ifndef SIGACTION_FLAGS
-# define SIGACTION_FLAGS 0
-#endif
-
-/* The backtrace should include at least handle_signal, a signal
- trampoline, read, 3 * fn, and do_test. */
-#define NUM_FUNCTIONS 7
-
-void
-handle_signal (int signum)
-{
- void *addresses[NUM_FUNCTIONS];
- char **symbols;
- int n;
- int i;
-
- /* Get the backtrace addresses. */
- n = backtrace (addresses, sizeof (addresses) / sizeof (addresses[0]));
- printf ("Obtained backtrace with %d functions\n", n);
- /* Check that there are at least seven functions. */
- if (n < NUM_FUNCTIONS)
- {
- FAIL ();
- return;
- }
- /* Convert them to symbols. */
- symbols = backtrace_symbols (addresses, n);
- /* Check that symbols were obtained. */
- if (symbols == NULL)
- {
- FAIL ();
- return;
- }
- for (i = 0; i < n; ++i)
- printf ("Function %d: %s\n", i, symbols[i]);
- /* Check that the function names obtained are accurate. */
- if (!match (symbols[0], "handle_signal"))
- {
- FAIL ();
- return;
- }
- /* Do not check name for signal trampoline. */
- i = 2;
- if (!match (symbols[i++], "read"))
- {
- /* Perhaps symbols[2] is __kernel_vsyscall? */
- if (!match (symbols[i++], "read"))
- {
- FAIL ();
- return;
- }
- }
- for (; i < n - 1; i++)
- if (!match (symbols[i], "fn"))
- {
- FAIL ();
- return;
- }
- /* Symbol names are not available for static functions, so we do not
- check do_test. */
-}
-
-NO_INLINE int
-fn (int c, int flags)
-{
- pid_t parent_pid, child_pid;
- int pipefd[2];
- char r[1];
- struct sigaction act;
-
- if (c > 0)
- {
- fn (c - 1, flags);
- return x;
- }
-
- memset (&act, 0, sizeof (act));
- act.sa_handler = handle_signal;
- act.sa_flags = flags;
- sigemptyset (&act.sa_mask);
- sigaction (SIGUSR1, &act, NULL);
- parent_pid = getpid ();
- if (pipe (pipefd) == -1)
- abort ();
-
- child_pid = fork ();
- if (child_pid == (pid_t) -1)
- abort ();
- else if (child_pid == 0)
- {
- sleep (1);
- kill (parent_pid, SIGUSR1);
- _exit (0);
- }
-
- /* In the parent. */
- read (pipefd[0], r, 1);
-
- return 0;
-}
-
-NO_INLINE int
-do_test (void)
-{
- fn (2, SIGACTION_FLAGS);
- return ret;
-}
-
-#include <support/test-driver.c>
diff --git a/debug/tst-backtrace6.c b/debug/tst-backtrace6.c
deleted file mode 100644
index 64ede3ce3a..0000000000
--- a/debug/tst-backtrace6.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Test backtrace and backtrace_symbols for signal frames, where a
- system call was interrupted by a signal.
- Copyright (C) 2013-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <signal.h>
-
-#ifdef SA_SIGINFO
-# define SIGACTION_FLAGS SA_SIGINFO
-# include <debug/tst-backtrace5.c>
-#else
-# define TEST_FUNCTION 0
-# include "../test-skeleton.c"
-#endif
diff --git a/debug/tst-chk1.c b/debug/tst-chk1.c
deleted file mode 100644
index 60c8e1e1d0..0000000000
--- a/debug/tst-chk1.c
+++ /dev/null
@@ -1,1717 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* This file tests gets. Force it to be declared. */
-#include <features.h>
-#undef __GLIBC_USE_DEPRECATED_GETS
-#define __GLIBC_USE_DEPRECATED_GETS 1
-
-#include <assert.h>
-#include <fcntl.h>
-#include <locale.h>
-#include <obstack.h>
-#include <setjmp.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <wchar.h>
-#include <sys/poll.h>
-#include <sys/select.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-
-
-#define obstack_chunk_alloc malloc
-#define obstack_chunk_free free
-
-char *temp_filename;
-static void do_prepare (void);
-static int do_test (void);
-#define PREPARE(argc, argv) do_prepare ()
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static void
-do_prepare (void)
-{
- int temp_fd = create_temp_file ("tst-chk1.", &temp_filename);
- if (temp_fd == -1)
- {
- printf ("cannot create temporary file: %m\n");
- exit (1);
- }
-
- const char *strs = "abcdefgh\nABCDEFGHI\nabcdefghij\nABCDEFGHIJ";
- if ((size_t) write (temp_fd, strs, strlen (strs)) != strlen (strs))
- {
- puts ("could not write test strings into file");
- unlink (temp_filename);
- exit (1);
- }
-}
-
-volatile int chk_fail_ok;
-volatile int ret;
-jmp_buf chk_fail_buf;
-
-static void
-handler (int sig)
-{
- if (chk_fail_ok)
- {
- chk_fail_ok = 0;
- longjmp (chk_fail_buf, 1);
- }
- else
- _exit (127);
-}
-
-char buf[10];
-wchar_t wbuf[10];
-volatile size_t l0;
-volatile char *p;
-volatile wchar_t *wp;
-const char *str1 = "JIHGFEDCBA";
-const char *str2 = "F";
-const char *str3 = "%s%n%s%n";
-const char *str4 = "Hello, ";
-const char *str5 = "World!\n";
-const wchar_t *wstr1 = L"JIHGFEDCBA";
-const wchar_t *wstr2 = L"F";
-const wchar_t *wstr3 = L"%s%n%s%n";
-const wchar_t *wstr4 = L"Hello, ";
-const wchar_t *wstr5 = L"World!\n";
-char buf2[10] = "%s";
-int num1 = 67;
-int num2 = 987654;
-
-#define FAIL() \
- do { printf ("Failure on line %d\n", __LINE__); ret = 1; } while (0)
-#define CHK_FAIL_START \
- chk_fail_ok = 1; \
- if (! setjmp (chk_fail_buf)) \
- {
-#define CHK_FAIL_END \
- chk_fail_ok = 0; \
- FAIL (); \
- }
-#if __USE_FORTIFY_LEVEL >= 2 && (!defined __cplusplus || defined __va_arg_pack)
-# define CHK_FAIL2_START CHK_FAIL_START
-# define CHK_FAIL2_END CHK_FAIL_END
-#else
-# define CHK_FAIL2_START
-# define CHK_FAIL2_END
-#endif
-
-static int
-do_test (void)
-{
- set_fortify_handler (handler);
-
- struct A { char buf1[9]; char buf2[1]; } a;
- struct wA { wchar_t buf1[9]; wchar_t buf2[1]; } wa;
-
- printf ("Test checking routines at fortify level %d\n",
-#ifdef __USE_FORTIFY_LEVEL
- (int) __USE_FORTIFY_LEVEL
-#else
- 0
-#endif
- );
-
-#if defined __USE_FORTIFY_LEVEL && !defined __fortify_function
- printf ("Test skipped");
- if (l0 == 0)
- return 0;
-#endif
-
- /* These ops can be done without runtime checking of object size. */
- memcpy (buf, "abcdefghij", 10);
- memmove (buf + 1, buf, 9);
- if (memcmp (buf, "aabcdefghi", 10))
- FAIL ();
-
- memcpy (buf, "abcdefghij", 10);
- bcopy (buf, buf + 1, 9);
- if (memcmp (buf, "aabcdefghi", 10))
- FAIL ();
-
- if (mempcpy (buf + 5, "abcde", 5) != buf + 10
- || memcmp (buf, "aabcdabcde", 10))
- FAIL ();
-
- memset (buf + 8, 'j', 2);
- if (memcmp (buf, "aabcdabcjj", 10))
- FAIL ();
-
- bzero (buf + 8, 2);
- if (memcmp (buf, "aabcdabc\0\0", 10))
- FAIL ();
-
- explicit_bzero (buf + 6, 4);
- if (memcmp (buf, "aabcda\0\0\0\0", 10))
- FAIL ();
-
- strcpy (buf + 4, "EDCBA");
- if (memcmp (buf, "aabcEDCBA", 10))
- FAIL ();
-
- if (stpcpy (buf + 8, "F") != buf + 9 || memcmp (buf, "aabcEDCBF", 10))
- FAIL ();
-
- strncpy (buf + 6, "X", 4);
- if (memcmp (buf, "aabcEDX\0\0", 10))
- FAIL ();
-
- if (sprintf (buf + 7, "%s", "67") != 2 || memcmp (buf, "aabcEDX67", 10))
- FAIL ();
-
- if (snprintf (buf + 7, 3, "%s", "987654") != 6
- || memcmp (buf, "aabcEDX98", 10))
- FAIL ();
-
- /* These ops need runtime checking, but shouldn't __chk_fail. */
- memcpy (buf, "abcdefghij", l0 + 10);
- memmove (buf + 1, buf, l0 + 9);
- if (memcmp (buf, "aabcdefghi", 10))
- FAIL ();
-
- memcpy (buf, "abcdefghij", l0 + 10);
- bcopy (buf, buf + 1, l0 + 9);
- if (memcmp (buf, "aabcdefghi", 10))
- FAIL ();
-
- if (mempcpy (buf + 5, "abcde", l0 + 5) != buf + 10
- || memcmp (buf, "aabcdabcde", 10))
- FAIL ();
-
- memset (buf + 8, 'j', l0 + 2);
- if (memcmp (buf, "aabcdabcjj", 10))
- FAIL ();
-
- bzero (buf + 8, l0 + 2);
- if (memcmp (buf, "aabcdabc\0\0", 10))
- FAIL ();
-
- explicit_bzero (buf + 6, l0 + 4);
- if (memcmp (buf, "aabcda\0\0\0\0", 10))
- FAIL ();
-
- strcpy (buf + 4, str1 + 5);
- if (memcmp (buf, "aabcEDCBA", 10))
- FAIL ();
-
- if (stpcpy (buf + 8, str2) != buf + 9 || memcmp (buf, "aabcEDCBF", 10))
- FAIL ();
-
- strncpy (buf + 6, "X", l0 + 4);
- if (memcmp (buf, "aabcEDX\0\0", 10))
- FAIL ();
-
- if (stpncpy (buf + 5, "cd", l0 + 5) != buf + 7
- || memcmp (buf, "aabcEcd\0\0", 10))
- FAIL ();
-
- if (sprintf (buf + 7, "%d", num1) != 2 || memcmp (buf, "aabcEcd67", 10))
- FAIL ();
-
- if (snprintf (buf + 7, 3, "%d", num2) != 6 || memcmp (buf, "aabcEcd98", 10))
- FAIL ();
-
- buf[l0 + 8] = '\0';
- strcat (buf, "A");
- if (memcmp (buf, "aabcEcd9A", 10))
- FAIL ();
-
- buf[l0 + 7] = '\0';
- strncat (buf, "ZYXWV", l0 + 2);
- if (memcmp (buf, "aabcEcdZY", 10))
- FAIL ();
-
- /* The following tests are supposed to succeed at all fortify
- levels, even though they overflow a.buf1 into a.buf2. */
- memcpy (a.buf1, "abcdefghij", l0 + 10);
- memmove (a.buf1 + 1, a.buf1, l0 + 9);
- if (memcmp (a.buf1, "aabcdefghi", 10))
- FAIL ();
-
- memcpy (a.buf1, "abcdefghij", l0 + 10);
- bcopy (a.buf1, a.buf1 + 1, l0 + 9);
- if (memcmp (a.buf1, "aabcdefghi", 10))
- FAIL ();
-
- if (mempcpy (a.buf1 + 5, "abcde", l0 + 5) != a.buf1 + 10
- || memcmp (a.buf1, "aabcdabcde", 10))
- FAIL ();
-
- memset (a.buf1 + 8, 'j', l0 + 2);
- if (memcmp (a.buf1, "aabcdabcjj", 10))
- FAIL ();
-
- bzero (a.buf1 + 8, l0 + 2);
- if (memcmp (a.buf1, "aabcdabc\0\0", 10))
- FAIL ();
-
- explicit_bzero (a.buf1 + 6, l0 + 4);
- if (memcmp (a.buf1, "aabcda\0\0\0\0", 10))
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL < 2
- /* The following tests are supposed to crash with -D_FORTIFY_SOURCE=2
- and sufficient GCC support, as the string operations overflow
- from a.buf1 into a.buf2. */
- strcpy (a.buf1 + 4, str1 + 5);
- if (memcmp (a.buf1, "aabcEDCBA", 10))
- FAIL ();
-
- if (stpcpy (a.buf1 + 8, str2) != a.buf1 + 9
- || memcmp (a.buf1, "aabcEDCBF", 10))
- FAIL ();
-
- strncpy (a.buf1 + 6, "X", l0 + 4);
- if (memcmp (a.buf1, "aabcEDX\0\0", 10))
- FAIL ();
-
- if (sprintf (a.buf1 + 7, "%d", num1) != 2
- || memcmp (a.buf1, "aabcEDX67", 10))
- FAIL ();
-
- if (snprintf (a.buf1 + 7, 3, "%d", num2) != 6
- || memcmp (a.buf1, "aabcEDX98", 10))
- FAIL ();
-
- a.buf1[l0 + 8] = '\0';
- strcat (a.buf1, "A");
- if (memcmp (a.buf1, "aabcEDX9A", 10))
- FAIL ();
-
- a.buf1[l0 + 7] = '\0';
- strncat (a.buf1, "ZYXWV", l0 + 2);
- if (memcmp (a.buf1, "aabcEDXZY", 10))
- FAIL ();
-
-#endif
-
-#if __USE_FORTIFY_LEVEL >= 1
- /* Now check if all buffer overflows are caught at runtime.
- N.B. All tests involving a length parameter need to be done
- twice: once with the length a compile-time constant, once without. */
-
- CHK_FAIL_START
- memcpy (buf + 1, "abcdefghij", 10);
- CHK_FAIL_END
-
- CHK_FAIL_START
- memcpy (buf + 1, "abcdefghij", l0 + 10);
- CHK_FAIL_END
-
- CHK_FAIL_START
- memmove (buf + 2, buf + 1, 9);
- CHK_FAIL_END
-
- CHK_FAIL_START
- memmove (buf + 2, buf + 1, l0 + 9);
- CHK_FAIL_END
-
- CHK_FAIL_START
- bcopy (buf + 1, buf + 2, 9);
- CHK_FAIL_END
-
- CHK_FAIL_START
- bcopy (buf + 1, buf + 2, l0 + 9);
- CHK_FAIL_END
-
- CHK_FAIL_START
- p = (char *) mempcpy (buf + 6, "abcde", 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- p = (char *) mempcpy (buf + 6, "abcde", l0 + 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- memset (buf + 9, 'j', 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- memset (buf + 9, 'j', l0 + 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- bzero (buf + 9, 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- bzero (buf + 9, l0 + 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- explicit_bzero (buf + 9, 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- explicit_bzero (buf + 9, l0 + 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- strcpy (buf + 5, str1 + 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- p = stpcpy (buf + 9, str2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- strncpy (buf + 7, "X", 4);
- CHK_FAIL_END
-
- CHK_FAIL_START
- strncpy (buf + 7, "X", l0 + 4);
- CHK_FAIL_END
-
- CHK_FAIL_START
- stpncpy (buf + 6, "cd", 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- stpncpy (buf + 6, "cd", l0 + 5);
- CHK_FAIL_END
-
-# if !defined __cplusplus || defined __va_arg_pack
- CHK_FAIL_START
- sprintf (buf + 8, "%d", num1);
- CHK_FAIL_END
-
- CHK_FAIL_START
- snprintf (buf + 8, 3, "%d", num2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- snprintf (buf + 8, l0 + 3, "%d", num2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- swprintf (wbuf + 8, 3, L"%d", num1);
- CHK_FAIL_END
-
- CHK_FAIL_START
- swprintf (wbuf + 8, l0 + 3, L"%d", num1);
- CHK_FAIL_END
-# endif
-
- memcpy (buf, str1 + 2, 9);
- CHK_FAIL_START
- strcat (buf, "AB");
- CHK_FAIL_END
-
- memcpy (buf, str1 + 3, 8);
- CHK_FAIL_START
- strncat (buf, "ZYXWV", 3);
- CHK_FAIL_END
-
- memcpy (buf, str1 + 3, 8);
- CHK_FAIL_START
- strncat (buf, "ZYXWV", l0 + 3);
- CHK_FAIL_END
-
- CHK_FAIL_START
- memcpy (a.buf1 + 1, "abcdefghij", 10);
- CHK_FAIL_END
-
- CHK_FAIL_START
- memcpy (a.buf1 + 1, "abcdefghij", l0 + 10);
- CHK_FAIL_END
-
- CHK_FAIL_START
- memmove (a.buf1 + 2, a.buf1 + 1, 9);
- CHK_FAIL_END
-
- CHK_FAIL_START
- memmove (a.buf1 + 2, a.buf1 + 1, l0 + 9);
- CHK_FAIL_END
-
- CHK_FAIL_START
- bcopy (a.buf1 + 1, a.buf1 + 2, 9);
- CHK_FAIL_END
-
- CHK_FAIL_START
- bcopy (a.buf1 + 1, a.buf1 + 2, l0 + 9);
- CHK_FAIL_END
-
- CHK_FAIL_START
- p = (char *) mempcpy (a.buf1 + 6, "abcde", 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- p = (char *) mempcpy (a.buf1 + 6, "abcde", l0 + 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- memset (a.buf1 + 9, 'j', 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- memset (a.buf1 + 9, 'j', l0 + 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- bzero (a.buf1 + 9, 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- bzero (a.buf1 + 9, l0 + 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- explicit_bzero (a.buf1 + 9, 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- explicit_bzero (a.buf1 + 9, l0 + 2);
- CHK_FAIL_END
-
-# if __USE_FORTIFY_LEVEL >= 2
-# define O 0
-# else
-# define O 1
-# endif
-
- CHK_FAIL_START
- strcpy (a.buf1 + (O + 4), str1 + 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- p = stpcpy (a.buf1 + (O + 8), str2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- strncpy (a.buf1 + (O + 6), "X", 4);
- CHK_FAIL_END
-
- CHK_FAIL_START
- strncpy (a.buf1 + (O + 6), "X", l0 + 4);
- CHK_FAIL_END
-
-# if !defined __cplusplus || defined __va_arg_pack
- CHK_FAIL_START
- sprintf (a.buf1 + (O + 7), "%d", num1);
- CHK_FAIL_END
-
- CHK_FAIL_START
- snprintf (a.buf1 + (O + 7), 3, "%d", num2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- snprintf (a.buf1 + (O + 7), l0 + 3, "%d", num2);
- CHK_FAIL_END
-# endif
-
- memcpy (a.buf1, str1 + (3 - O), 8 + O);
- CHK_FAIL_START
- strcat (a.buf1, "AB");
- CHK_FAIL_END
-
- memcpy (a.buf1, str1 + (4 - O), 7 + O);
- CHK_FAIL_START
- strncat (a.buf1, "ZYXWV", l0 + 3);
- CHK_FAIL_END
-#endif
-
-
- /* These ops can be done without runtime checking of object size. */
- wmemcpy (wbuf, L"abcdefghij", 10);
- wmemmove (wbuf + 1, wbuf, 9);
- if (wmemcmp (wbuf, L"aabcdefghi", 10))
- FAIL ();
-
- if (wmempcpy (wbuf + 5, L"abcde", 5) != wbuf + 10
- || wmemcmp (wbuf, L"aabcdabcde", 10))
- FAIL ();
-
- wmemset (wbuf + 8, L'j', 2);
- if (wmemcmp (wbuf, L"aabcdabcjj", 10))
- FAIL ();
-
- wcscpy (wbuf + 4, L"EDCBA");
- if (wmemcmp (wbuf, L"aabcEDCBA", 10))
- FAIL ();
-
- if (wcpcpy (wbuf + 8, L"F") != wbuf + 9 || wmemcmp (wbuf, L"aabcEDCBF", 10))
- FAIL ();
-
- wcsncpy (wbuf + 6, L"X", 4);
- if (wmemcmp (wbuf, L"aabcEDX\0\0", 10))
- FAIL ();
-
- if (swprintf (wbuf + 7, 3, L"%ls", L"987654") >= 0
- || wmemcmp (wbuf, L"aabcEDX98", 10))
- FAIL ();
-
- if (swprintf (wbuf + 7, 3, L"64") != 2
- || wmemcmp (wbuf, L"aabcEDX64", 10))
- FAIL ();
-
- /* These ops need runtime checking, but shouldn't __chk_fail. */
- wmemcpy (wbuf, L"abcdefghij", l0 + 10);
- wmemmove (wbuf + 1, wbuf, l0 + 9);
- if (wmemcmp (wbuf, L"aabcdefghi", 10))
- FAIL ();
-
- if (wmempcpy (wbuf + 5, L"abcde", l0 + 5) != wbuf + 10
- || wmemcmp (wbuf, L"aabcdabcde", 10))
- FAIL ();
-
- wmemset (wbuf + 8, L'j', l0 + 2);
- if (wmemcmp (wbuf, L"aabcdabcjj", 10))
- FAIL ();
-
- wcscpy (wbuf + 4, wstr1 + 5);
- if (wmemcmp (wbuf, L"aabcEDCBA", 10))
- FAIL ();
-
- if (wcpcpy (wbuf + 8, wstr2) != wbuf + 9 || wmemcmp (wbuf, L"aabcEDCBF", 10))
- FAIL ();
-
- wcsncpy (wbuf + 6, L"X", l0 + 4);
- if (wmemcmp (wbuf, L"aabcEDX\0\0", 10))
- FAIL ();
-
- if (wcpncpy (wbuf + 5, L"cd", l0 + 5) != wbuf + 7
- || wmemcmp (wbuf, L"aabcEcd\0\0", 10))
- FAIL ();
-
- if (swprintf (wbuf + 7, 3, L"%d", num2) >= 0
- || wmemcmp (wbuf, L"aabcEcd98", 10))
- FAIL ();
-
- wbuf[l0 + 8] = L'\0';
- wcscat (wbuf, L"A");
- if (wmemcmp (wbuf, L"aabcEcd9A", 10))
- FAIL ();
-
- wbuf[l0 + 7] = L'\0';
- wcsncat (wbuf, L"ZYXWV", l0 + 2);
- if (wmemcmp (wbuf, L"aabcEcdZY", 10))
- FAIL ();
-
- wmemcpy (wa.buf1, L"abcdefghij", l0 + 10);
- wmemmove (wa.buf1 + 1, wa.buf1, l0 + 9);
- if (wmemcmp (wa.buf1, L"aabcdefghi", 10))
- FAIL ();
-
- if (wmempcpy (wa.buf1 + 5, L"abcde", l0 + 5) != wa.buf1 + 10
- || wmemcmp (wa.buf1, L"aabcdabcde", 10))
- FAIL ();
-
- wmemset (wa.buf1 + 8, L'j', l0 + 2);
- if (wmemcmp (wa.buf1, L"aabcdabcjj", 10))
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL < 2
- /* The following tests are supposed to crash with -D_FORTIFY_SOURCE=2
- and sufficient GCC support, as the string operations overflow
- from a.buf1 into a.buf2. */
- wcscpy (wa.buf1 + 4, wstr1 + 5);
- if (wmemcmp (wa.buf1, L"aabcEDCBA", 10))
- FAIL ();
-
- if (wcpcpy (wa.buf1 + 8, wstr2) != wa.buf1 + 9
- || wmemcmp (wa.buf1, L"aabcEDCBF", 10))
- FAIL ();
-
- wcsncpy (wa.buf1 + 6, L"X", l0 + 4);
- if (wmemcmp (wa.buf1, L"aabcEDX\0\0", 10))
- FAIL ();
-
- if (swprintf (wa.buf1 + 7, 3, L"%d", num2) >= 0
- || wmemcmp (wa.buf1, L"aabcEDX98", 10))
- FAIL ();
-
- wa.buf1[l0 + 8] = L'\0';
- wcscat (wa.buf1, L"A");
- if (wmemcmp (wa.buf1, L"aabcEDX9A", 10))
- FAIL ();
-
- wa.buf1[l0 + 7] = L'\0';
- wcsncat (wa.buf1, L"ZYXWV", l0 + 2);
- if (wmemcmp (wa.buf1, L"aabcEDXZY", 10))
- FAIL ();
-
-#endif
-
-#if __USE_FORTIFY_LEVEL >= 1
- /* Now check if all buffer overflows are caught at runtime.
- N.B. All tests involving a length parameter need to be done
- twice: once with the length a compile-time constant, once without. */
-
- CHK_FAIL_START
- wmemcpy (wbuf + 1, L"abcdefghij", 10);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemcpy (wbuf + 1, L"abcdefghij", l0 + 10);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemcpy (wbuf + 9, L"abcdefghij", 10);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemcpy (wbuf + 9, L"abcdefghij", l0 + 10);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemmove (wbuf + 2, wbuf + 1, 9);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemmove (wbuf + 2, wbuf + 1, l0 + 9);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wp = wmempcpy (wbuf + 6, L"abcde", 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wp = wmempcpy (wbuf + 6, L"abcde", l0 + 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemset (wbuf + 9, L'j', 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemset (wbuf + 9, L'j', l0 + 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wcscpy (wbuf + 5, wstr1 + 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wp = wcpcpy (wbuf + 9, wstr2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wcsncpy (wbuf + 7, L"X", 4);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wcsncpy (wbuf + 7, L"X", l0 + 4);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wcsncpy (wbuf + 9, L"XABCDEFGH", 8);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wcpncpy (wbuf + 9, L"XABCDEFGH", 8);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wcpncpy (wbuf + 6, L"cd", 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wcpncpy (wbuf + 6, L"cd", l0 + 5);
- CHK_FAIL_END
-
- wmemcpy (wbuf, wstr1 + 2, 9);
- CHK_FAIL_START
- wcscat (wbuf, L"AB");
- CHK_FAIL_END
-
- wmemcpy (wbuf, wstr1 + 3, 8);
- CHK_FAIL_START
- wcsncat (wbuf, L"ZYXWV", l0 + 3);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemcpy (wa.buf1 + 1, L"abcdefghij", 10);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemcpy (wa.buf1 + 1, L"abcdefghij", l0 + 10);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemmove (wa.buf1 + 2, wa.buf1 + 1, 9);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemmove (wa.buf1 + 2, wa.buf1 + 1, l0 + 9);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wp = wmempcpy (wa.buf1 + 6, L"abcde", 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wp = wmempcpy (wa.buf1 + 6, L"abcde", l0 + 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemset (wa.buf1 + 9, L'j', 2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wmemset (wa.buf1 + 9, L'j', l0 + 2);
- CHK_FAIL_END
-
-#if __USE_FORTIFY_LEVEL >= 2
-# define O 0
-#else
-# define O 1
-#endif
-
- CHK_FAIL_START
- wcscpy (wa.buf1 + (O + 4), wstr1 + 5);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wp = wcpcpy (wa.buf1 + (O + 8), wstr2);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wcsncpy (wa.buf1 + (O + 6), L"X", 4);
- CHK_FAIL_END
-
- CHK_FAIL_START
- wcsncpy (wa.buf1 + (O + 6), L"X", l0 + 4);
- CHK_FAIL_END
-
- wmemcpy (wa.buf1, wstr1 + (3 - O), 8 + O);
- CHK_FAIL_START
- wcscat (wa.buf1, L"AB");
- CHK_FAIL_END
-
- wmemcpy (wa.buf1, wstr1 + (4 - O), 7 + O);
- CHK_FAIL_START
- wcsncat (wa.buf1, L"ZYXWV", l0 + 3);
- CHK_FAIL_END
-#endif
-
-
- /* Now checks for %n protection. */
-
- /* Constant literals passed directly are always ok
- (even with warnings about possible bugs from GCC). */
- int n1, n2;
- if (sprintf (buf, "%s%n%s%n", str2, &n1, str2, &n2) != 2
- || n1 != 1 || n2 != 2)
- FAIL ();
-
- /* In this case the format string is not known at compile time,
- but resides in read-only memory, so is ok. */
- if (snprintf (buf, 4, str3, str2, &n1, str2, &n2) != 2
- || n1 != 1 || n2 != 2)
- FAIL ();
-
- strcpy (buf2 + 2, "%n%s%n");
- /* When the format string is writable and contains %n,
- with -D_FORTIFY_SOURCE=2 it causes __chk_fail. */
- CHK_FAIL2_START
- if (sprintf (buf, buf2, str2, &n1, str2, &n1) != 2)
- FAIL ();
- CHK_FAIL2_END
-
- CHK_FAIL2_START
- if (snprintf (buf, 3, buf2, str2, &n1, str2, &n1) != 2)
- FAIL ();
- CHK_FAIL2_END
-
- /* But if there is no %n, even writable format string
- should work. */
- buf2[6] = '\0';
- if (sprintf (buf, buf2 + 4, str2) != 1)
- FAIL ();
-
- /* Constant literals passed directly are always ok
- (even with warnings about possible bugs from GCC). */
- if (printf ("%s%n%s%n", str4, &n1, str5, &n2) != 14
- || n1 != 7 || n2 != 14)
- FAIL ();
-
- /* In this case the format string is not known at compile time,
- but resides in read-only memory, so is ok. */
- if (printf (str3, str4, &n1, str5, &n2) != 14
- || n1 != 7 || n2 != 14)
- FAIL ();
-
- strcpy (buf2 + 2, "%n%s%n");
- /* When the format string is writable and contains %n,
- with -D_FORTIFY_SOURCE=2 it causes __chk_fail. */
- CHK_FAIL2_START
- if (printf (buf2, str4, &n1, str5, &n1) != 14)
- FAIL ();
- CHK_FAIL2_END
-
- /* But if there is no %n, even writable format string
- should work. */
- buf2[6] = '\0';
- if (printf (buf2 + 4, str5) != 7)
- FAIL ();
-
- FILE *fp = stdout;
-
- /* Constant literals passed directly are always ok
- (even with warnings about possible bugs from GCC). */
- if (fprintf (fp, "%s%n%s%n", str4, &n1, str5, &n2) != 14
- || n1 != 7 || n2 != 14)
- FAIL ();
-
- /* In this case the format string is not known at compile time,
- but resides in read-only memory, so is ok. */
- if (fprintf (fp, str3, str4, &n1, str5, &n2) != 14
- || n1 != 7 || n2 != 14)
- FAIL ();
-
- strcpy (buf2 + 2, "%n%s%n");
- /* When the format string is writable and contains %n,
- with -D_FORTIFY_SOURCE=2 it causes __chk_fail. */
- CHK_FAIL2_START
- if (fprintf (fp, buf2, str4, &n1, str5, &n1) != 14)
- FAIL ();
- CHK_FAIL2_END
-
- /* But if there is no %n, even writable format string
- should work. */
- buf2[6] = '\0';
- if (fprintf (fp, buf2 + 4, str5) != 7)
- FAIL ();
-
- char *my_ptr = NULL;
- strcpy (buf2 + 2, "%n%s%n");
- /* When the format string is writable and contains %n,
- with -D_FORTIFY_SOURCE=2 it causes __chk_fail. */
- CHK_FAIL2_START
- if (asprintf (&my_ptr, buf2, str4, &n1, str5, &n1) != 14)
- FAIL ();
- else
- free (my_ptr);
- CHK_FAIL2_END
-
- struct obstack obs;
- obstack_init (&obs);
- CHK_FAIL2_START
- if (obstack_printf (&obs, buf2, str4, &n1, str5, &n1) != 14)
- FAIL ();
- CHK_FAIL2_END
- obstack_free (&obs, NULL);
-
- my_ptr = NULL;
- if (asprintf (&my_ptr, "%s%n%s%n", str4, &n1, str5, &n1) != 14)
- FAIL ();
- else
- free (my_ptr);
-
- obstack_init (&obs);
- if (obstack_printf (&obs, "%s%n%s%n", str4, &n1, str5, &n1) != 14)
- FAIL ();
- obstack_free (&obs, NULL);
-
- if (freopen (temp_filename, "r", stdin) == NULL)
- {
- puts ("could not open temporary file");
- exit (1);
- }
-
- if (gets (buf) != buf || memcmp (buf, "abcdefgh", 9))
- FAIL ();
- if (gets (buf) != buf || memcmp (buf, "ABCDEFGHI", 10))
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (gets (buf) != buf)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- rewind (stdin);
-
- if (fgets (buf, sizeof (buf), stdin) != buf
- || memcmp (buf, "abcdefgh\n", 10))
- FAIL ();
- if (fgets (buf, sizeof (buf), stdin) != buf || memcmp (buf, "ABCDEFGHI", 10))
- FAIL ();
-
- rewind (stdin);
-
- if (fgets (buf, l0 + sizeof (buf), stdin) != buf
- || memcmp (buf, "abcdefgh\n", 10))
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (fgets (buf, sizeof (buf) + 1, stdin) != buf)
- FAIL ();
- CHK_FAIL_END
-
- CHK_FAIL_START
- if (fgets (buf, l0 + sizeof (buf) + 1, stdin) != buf)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- rewind (stdin);
-
- if (fgets_unlocked (buf, sizeof (buf), stdin) != buf
- || memcmp (buf, "abcdefgh\n", 10))
- FAIL ();
- if (fgets_unlocked (buf, sizeof (buf), stdin) != buf
- || memcmp (buf, "ABCDEFGHI", 10))
- FAIL ();
-
- rewind (stdin);
-
- if (fgets_unlocked (buf, l0 + sizeof (buf), stdin) != buf
- || memcmp (buf, "abcdefgh\n", 10))
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (fgets_unlocked (buf, sizeof (buf) + 1, stdin) != buf)
- FAIL ();
- CHK_FAIL_END
-
- CHK_FAIL_START
- if (fgets_unlocked (buf, l0 + sizeof (buf) + 1, stdin) != buf)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- rewind (stdin);
-
- if (fread (buf, 1, sizeof (buf), stdin) != sizeof (buf)
- || memcmp (buf, "abcdefgh\nA", 10))
- FAIL ();
- if (fread (buf, sizeof (buf), 1, stdin) != 1
- || memcmp (buf, "BCDEFGHI\na", 10))
- FAIL ();
-
- rewind (stdin);
-
- if (fread (buf, l0 + 1, sizeof (buf), stdin) != sizeof (buf)
- || memcmp (buf, "abcdefgh\nA", 10))
- FAIL ();
- if (fread (buf, sizeof (buf), l0 + 1, stdin) != 1
- || memcmp (buf, "BCDEFGHI\na", 10))
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (fread (buf, 1, sizeof (buf) + 1, stdin) != sizeof (buf) + 1)
- FAIL ();
- CHK_FAIL_END
-
- CHK_FAIL_START
- if (fread (buf, sizeof (buf) + 1, l0 + 1, stdin) != 1)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- rewind (stdin);
-
- if (fread_unlocked (buf, 1, sizeof (buf), stdin) != sizeof (buf)
- || memcmp (buf, "abcdefgh\nA", 10))
- FAIL ();
- if (fread_unlocked (buf, sizeof (buf), 1, stdin) != 1
- || memcmp (buf, "BCDEFGHI\na", 10))
- FAIL ();
-
- rewind (stdin);
-
- if (fread_unlocked (buf, 1, 4, stdin) != 4
- || memcmp (buf, "abcdFGHI\na", 10))
- FAIL ();
- if (fread_unlocked (buf, 4, 1, stdin) != 1
- || memcmp (buf, "efghFGHI\na", 10))
- FAIL ();
-
- rewind (stdin);
-
- if (fread_unlocked (buf, l0 + 1, sizeof (buf), stdin) != sizeof (buf)
- || memcmp (buf, "abcdefgh\nA", 10))
- FAIL ();
- if (fread_unlocked (buf, sizeof (buf), l0 + 1, stdin) != 1
- || memcmp (buf, "BCDEFGHI\na", 10))
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (fread_unlocked (buf, 1, sizeof (buf) + 1, stdin) != sizeof (buf) + 1)
- FAIL ();
- CHK_FAIL_END
-
- CHK_FAIL_START
- if (fread_unlocked (buf, sizeof (buf) + 1, l0 + 1, stdin) != 1)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- lseek (fileno (stdin), 0, SEEK_SET);
-
- if (read (fileno (stdin), buf, sizeof (buf) - 1) != sizeof (buf) - 1
- || memcmp (buf, "abcdefgh\n", 9))
- FAIL ();
- if (read (fileno (stdin), buf, sizeof (buf) - 1) != sizeof (buf) - 1
- || memcmp (buf, "ABCDEFGHI", 9))
- FAIL ();
-
- lseek (fileno (stdin), 0, SEEK_SET);
-
- if (read (fileno (stdin), buf, l0 + sizeof (buf) - 1) != sizeof (buf) - 1
- || memcmp (buf, "abcdefgh\n", 9))
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (read (fileno (stdin), buf, sizeof (buf) + 1) != sizeof (buf) + 1)
- FAIL ();
- CHK_FAIL_END
-
- CHK_FAIL_START
- if (read (fileno (stdin), buf, l0 + sizeof (buf) + 1) != sizeof (buf) + 1)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- if (pread (fileno (stdin), buf, sizeof (buf) - 1, sizeof (buf) - 2)
- != sizeof (buf) - 1
- || memcmp (buf, "\nABCDEFGH", 9))
- FAIL ();
- if (pread (fileno (stdin), buf, sizeof (buf) - 1, 0) != sizeof (buf) - 1
- || memcmp (buf, "abcdefgh\n", 9))
- FAIL ();
- if (pread (fileno (stdin), buf, l0 + sizeof (buf) - 1, sizeof (buf) - 3)
- != sizeof (buf) - 1
- || memcmp (buf, "h\nABCDEFG", 9))
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (pread (fileno (stdin), buf, sizeof (buf) + 1, 2 * sizeof (buf))
- != sizeof (buf) + 1)
- FAIL ();
- CHK_FAIL_END
-
- CHK_FAIL_START
- if (pread (fileno (stdin), buf, l0 + sizeof (buf) + 1, 2 * sizeof (buf))
- != sizeof (buf) + 1)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- if (pread64 (fileno (stdin), buf, sizeof (buf) - 1, sizeof (buf) - 2)
- != sizeof (buf) - 1
- || memcmp (buf, "\nABCDEFGH", 9))
- FAIL ();
- if (pread64 (fileno (stdin), buf, sizeof (buf) - 1, 0) != sizeof (buf) - 1
- || memcmp (buf, "abcdefgh\n", 9))
- FAIL ();
- if (pread64 (fileno (stdin), buf, l0 + sizeof (buf) - 1, sizeof (buf) - 3)
- != sizeof (buf) - 1
- || memcmp (buf, "h\nABCDEFG", 9))
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (pread64 (fileno (stdin), buf, sizeof (buf) + 1, 2 * sizeof (buf))
- != sizeof (buf) + 1)
- FAIL ();
- CHK_FAIL_END
-
- CHK_FAIL_START
- if (pread64 (fileno (stdin), buf, l0 + sizeof (buf) + 1, 2 * sizeof (buf))
- != sizeof (buf) + 1)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- if (freopen (temp_filename, "r", stdin) == NULL)
- {
- puts ("could not open temporary file");
- exit (1);
- }
-
- if (fseek (stdin, 9 + 10 + 11, SEEK_SET))
- {
- puts ("could not seek in test file");
- exit (1);
- }
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (gets (buf) != buf)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- /* Check whether missing N$ formats are detected. */
- CHK_FAIL2_START
- printf ("%3$d\n", 1, 2, 3, 4);
- CHK_FAIL2_END
-
- CHK_FAIL2_START
- fprintf (stdout, "%3$d\n", 1, 2, 3, 4);
- CHK_FAIL2_END
-
- CHK_FAIL2_START
- sprintf (buf, "%3$d\n", 1, 2, 3, 4);
- CHK_FAIL2_END
-
- CHK_FAIL2_START
- snprintf (buf, sizeof (buf), "%3$d\n", 1, 2, 3, 4);
- CHK_FAIL2_END
-
- int sp[2];
- if (socketpair (PF_UNIX, SOCK_STREAM, 0, sp))
- FAIL ();
- else
- {
- const char *sendstr = "abcdefgh\nABCDEFGH\n0123456789\n";
- if ((size_t) send (sp[0], sendstr, strlen (sendstr), 0)
- != strlen (sendstr))
- FAIL ();
-
- char recvbuf[12];
- if (recv (sp[1], recvbuf, sizeof recvbuf, MSG_PEEK)
- != sizeof recvbuf
- || memcmp (recvbuf, sendstr, sizeof recvbuf) != 0)
- FAIL ();
-
- if (recv (sp[1], recvbuf + 6, l0 + sizeof recvbuf - 7, MSG_PEEK)
- != sizeof recvbuf - 7
- || memcmp (recvbuf + 6, sendstr, sizeof recvbuf - 7) != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (recv (sp[1], recvbuf + 1, sizeof recvbuf, MSG_PEEK)
- != sizeof recvbuf)
- FAIL ();
- CHK_FAIL_END
-
- CHK_FAIL_START
- if (recv (sp[1], recvbuf + 4, l0 + sizeof recvbuf - 3, MSG_PEEK)
- != sizeof recvbuf - 3)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- socklen_t sl;
- struct sockaddr_un sa_un;
-
- sl = sizeof (sa_un);
- if (recvfrom (sp[1], recvbuf, sizeof recvbuf, MSG_PEEK,
- (struct sockaddr *) &sa_un, &sl)
- != sizeof recvbuf
- || memcmp (recvbuf, sendstr, sizeof recvbuf) != 0)
- FAIL ();
-
- sl = sizeof (sa_un);
- if (recvfrom (sp[1], recvbuf + 6, l0 + sizeof recvbuf - 7, MSG_PEEK,
- (struct sockaddr *) &sa_un, &sl) != sizeof recvbuf - 7
- || memcmp (recvbuf + 6, sendstr, sizeof recvbuf - 7) != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- sl = sizeof (sa_un);
- if (recvfrom (sp[1], recvbuf + 1, sizeof recvbuf, MSG_PEEK,
- (struct sockaddr *) &sa_un, &sl) != sizeof recvbuf)
- FAIL ();
- CHK_FAIL_END
-
- CHK_FAIL_START
- sl = sizeof (sa_un);
- if (recvfrom (sp[1], recvbuf + 4, l0 + sizeof recvbuf - 3, MSG_PEEK,
- (struct sockaddr *) &sa_un, &sl) != sizeof recvbuf - 3)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- close (sp[0]);
- close (sp[1]);
- }
-
- char fname[] = "/tmp/tst-chk1-dir-XXXXXX\0foo";
- char *enddir = strchr (fname, '\0');
- if (mkdtemp (fname) == NULL)
- {
- printf ("mkdtemp failed: %m\n");
- return 1;
- }
- *enddir = '/';
- if (symlink ("bar", fname) != 0)
- FAIL ();
-
- char readlinkbuf[4];
- if (readlink (fname, readlinkbuf, 4) != 3
- || memcmp (readlinkbuf, "bar", 3) != 0)
- FAIL ();
- if (readlink (fname, readlinkbuf + 1, l0 + 3) != 3
- || memcmp (readlinkbuf, "bbar", 4) != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (readlink (fname, readlinkbuf + 2, l0 + 3) != 3)
- FAIL ();
- CHK_FAIL_END
-
- CHK_FAIL_START
- if (readlink (fname, readlinkbuf + 3, 4) != 3)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- int tmpfd = open ("/tmp", O_RDONLY | O_DIRECTORY);
- if (tmpfd < 0)
- FAIL ();
-
- if (readlinkat (tmpfd, fname + sizeof ("/tmp/") - 1, readlinkbuf, 4) != 3
- || memcmp (readlinkbuf, "bar", 3) != 0)
- FAIL ();
- if (readlinkat (tmpfd, fname + sizeof ("/tmp/") - 1, readlinkbuf + 1,
- l0 + 3) != 3
- || memcmp (readlinkbuf, "bbar", 4) != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (readlinkat (tmpfd, fname + sizeof ("/tmp/") - 1, readlinkbuf + 2,
- l0 + 3) != 3)
- FAIL ();
- CHK_FAIL_END
-
- CHK_FAIL_START
- if (readlinkat (tmpfd, fname + sizeof ("/tmp/") - 1, readlinkbuf + 3,
- 4) != 3)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- close (tmpfd);
-
- char *cwd1 = getcwd (NULL, 0);
- if (cwd1 == NULL)
- FAIL ();
-
- char *cwd2 = getcwd (NULL, 250);
- if (cwd2 == NULL)
- FAIL ();
-
- if (cwd1 && cwd2)
- {
- if (strcmp (cwd1, cwd2) != 0)
- FAIL ();
-
- *enddir = '\0';
- if (chdir (fname))
- FAIL ();
-
- char *cwd3 = getcwd (NULL, 0);
- if (cwd3 == NULL)
- FAIL ();
- if (strcmp (fname, cwd3) != 0)
- printf ("getcwd after chdir is '%s' != '%s',"
- "get{c,}wd tests skipped\n", cwd3, fname);
- else
- {
- char getcwdbuf[sizeof fname - 3];
-
- char *cwd4 = getcwd (getcwdbuf, sizeof getcwdbuf);
- if (cwd4 != getcwdbuf
- || strcmp (getcwdbuf, fname) != 0)
- FAIL ();
-
- cwd4 = getcwd (getcwdbuf + 1, l0 + sizeof getcwdbuf - 1);
- if (cwd4 != getcwdbuf + 1
- || getcwdbuf[0] != fname[0]
- || strcmp (getcwdbuf + 1, fname) != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (getcwd (getcwdbuf + 2, l0 + sizeof getcwdbuf)
- != getcwdbuf + 2)
- FAIL ();
- CHK_FAIL_END
-
- CHK_FAIL_START
- if (getcwd (getcwdbuf + 2, sizeof getcwdbuf)
- != getcwdbuf + 2)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- if (getwd (getcwdbuf) != getcwdbuf
- || strcmp (getcwdbuf, fname) != 0)
- FAIL ();
-
- if (getwd (getcwdbuf + 1) != getcwdbuf + 1
- || strcmp (getcwdbuf + 1, fname) != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- if (getwd (getcwdbuf + 2) != getcwdbuf + 2)
- FAIL ();
- CHK_FAIL_END
-#endif
- }
-
- if (chdir (cwd1) != 0)
- FAIL ();
- free (cwd3);
- }
-
- free (cwd1);
- free (cwd2);
- *enddir = '/';
- if (unlink (fname) != 0)
- FAIL ();
-
- *enddir = '\0';
- if (rmdir (fname) != 0)
- FAIL ();
-
-
-#if PATH_MAX > 0
- char largebuf[PATH_MAX];
- char *realres = realpath (".", largebuf);
- if (realres != largebuf)
- FAIL ();
-
-# if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- char realbuf[1];
- realres = realpath (".", realbuf);
- if (realres != realbuf)
- FAIL ();
- CHK_FAIL_END
-# endif
-#endif
-
- if (setlocale (LC_ALL, "de_DE.UTF-8") != NULL)
- {
- assert (MB_CUR_MAX <= 10);
-
- /* First a simple test. */
- char enough[10];
- if (wctomb (enough, L'A') != 1)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- /* We know the wchar_t encoding is ISO 10646. So pick a
- character which has a multibyte representation which does not
- fit. */
- CHK_FAIL_START
- char smallbuf[2];
- if (wctomb (smallbuf, L'\x100') != 2)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- mbstate_t s;
- memset (&s, '\0', sizeof (s));
- if (wcrtomb (enough, L'D', &s) != 1 || enough[0] != 'D')
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- /* We know the wchar_t encoding is ISO 10646. So pick a
- character which has a multibyte representation which does not
- fit. */
- CHK_FAIL_START
- char smallbuf[2];
- if (wcrtomb (smallbuf, L'\x100', &s) != 2)
- FAIL ();
- CHK_FAIL_END
-#endif
-
- wchar_t wenough[10];
- memset (&s, '\0', sizeof (s));
- const char *cp = "A";
- if (mbsrtowcs (wenough, &cp, 10, &s) != 1
- || wcscmp (wenough, L"A") != 0)
- FAIL ();
-
- cp = "BC";
- if (mbsrtowcs (wenough, &cp, l0 + 10, &s) != 2
- || wcscmp (wenough, L"BC") != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- wchar_t wsmallbuf[2];
- cp = "ABC";
- mbsrtowcs (wsmallbuf, &cp, 10, &s);
- CHK_FAIL_END
-#endif
-
- cp = "A";
- if (mbstowcs (wenough, cp, 10) != 1
- || wcscmp (wenough, L"A") != 0)
- FAIL ();
-
- cp = "DEF";
- if (mbstowcs (wenough, cp, l0 + 10) != 3
- || wcscmp (wenough, L"DEF") != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- wchar_t wsmallbuf[2];
- cp = "ABC";
- mbstowcs (wsmallbuf, cp, 10);
- CHK_FAIL_END
-#endif
-
- memset (&s, '\0', sizeof (s));
- cp = "ABC";
- wcscpy (wenough, L"DEF");
- if (mbsnrtowcs (wenough, &cp, 1, 10, &s) != 1
- || wcscmp (wenough, L"AEF") != 0)
- FAIL ();
-
- cp = "IJ";
- if (mbsnrtowcs (wenough, &cp, 1, l0 + 10, &s) != 1
- || wcscmp (wenough, L"IEF") != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- wchar_t wsmallbuf[2];
- cp = "ABC";
- mbsnrtowcs (wsmallbuf, &cp, 3, 10, &s);
- CHK_FAIL_END
-#endif
-
- memset (&s, '\0', sizeof (s));
- const wchar_t *wcp = L"A";
- if (wcsrtombs (enough, &wcp, 10, &s) != 1
- || strcmp (enough, "A") != 0)
- FAIL ();
-
- wcp = L"BC";
- if (wcsrtombs (enough, &wcp, l0 + 10, &s) != 2
- || strcmp (enough, "BC") != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- char smallbuf[2];
- wcp = L"ABC";
- wcsrtombs (smallbuf, &wcp, 10, &s);
- CHK_FAIL_END
-#endif
-
- memset (enough, 'Z', sizeof (enough));
- wcp = L"EF";
- if (wcstombs (enough, wcp, 10) != 2
- || strcmp (enough, "EF") != 0)
- FAIL ();
-
- wcp = L"G";
- if (wcstombs (enough, wcp, l0 + 10) != 1
- || strcmp (enough, "G") != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- char smallbuf[2];
- wcp = L"ABC";
- wcstombs (smallbuf, wcp, 10);
- CHK_FAIL_END
-#endif
-
- memset (&s, '\0', sizeof (s));
- wcp = L"AB";
- if (wcsnrtombs (enough, &wcp, 1, 10, &s) != 1
- || strcmp (enough, "A") != 0)
- FAIL ();
-
- wcp = L"BCD";
- if (wcsnrtombs (enough, &wcp, 1, l0 + 10, &s) != 1
- || strcmp (enough, "B") != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- char smallbuf[2];
- wcp = L"ABC";
- wcsnrtombs (smallbuf, &wcp, 3, 10, &s);
- CHK_FAIL_END
-#endif
- }
- else
- {
- puts ("cannot set locale");
- ret = 1;
- }
-
- int fd = posix_openpt (O_RDWR);
- if (fd != -1)
- {
- char enough[1000];
- if (ptsname_r (fd, enough, sizeof (enough)) != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- char smallbuf[2];
- if (ptsname_r (fd, smallbuf, sizeof (smallbuf) + 1) == 0)
- FAIL ();
- CHK_FAIL_END
-#endif
- close (fd);
- }
-
-#if PATH_MAX > 0
- confstr (_CS_GNU_LIBC_VERSION, largebuf, sizeof (largebuf));
-# if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- char smallbuf[1];
- confstr (_CS_GNU_LIBC_VERSION, smallbuf, sizeof (largebuf));
- CHK_FAIL_END
-# endif
-#endif
-
- gid_t grpslarge[5];
- int ngr = getgroups (5, grpslarge);
- asm volatile ("" : : "r" (ngr));
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- char smallbuf[1];
- ngr = getgroups (5, (gid_t *) smallbuf);
- asm volatile ("" : : "r" (ngr));
- CHK_FAIL_END
-#endif
-
- fd = open (_PATH_TTY, O_RDONLY);
- if (fd != -1)
- {
- char enough[1000];
- if (ttyname_r (fd, enough, sizeof (enough)) != 0)
- FAIL ();
-
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- char smallbuf[2];
- if (ttyname_r (fd, smallbuf, sizeof (smallbuf) + 1) == 0)
- FAIL ();
- CHK_FAIL_END
-#endif
- close (fd);
- }
-
- char hostnamelarge[1000];
- gethostname (hostnamelarge, sizeof (hostnamelarge));
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- char smallbuf[1];
- gethostname (smallbuf, sizeof (hostnamelarge));
- CHK_FAIL_END
-#endif
-
- char loginlarge[1000];
- getlogin_r (loginlarge, sizeof (hostnamelarge));
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- char smallbuf[1];
- getlogin_r (smallbuf, sizeof (loginlarge));
- CHK_FAIL_END
-#endif
-
- char domainnamelarge[1000];
- int res = getdomainname (domainnamelarge, sizeof (domainnamelarge));
- asm volatile ("" : : "r" (res));
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- char smallbuf[1];
- res = getdomainname (smallbuf, sizeof (domainnamelarge));
- asm volatile ("" : : "r" (res));
- CHK_FAIL_END
-#endif
-
- fd_set s;
- FD_ZERO (&s);
-
- FD_SET (FD_SETSIZE - 1, &s);
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- FD_SET (FD_SETSIZE, &s);
- CHK_FAIL_END
-
- CHK_FAIL_START
- FD_SET (l0 + FD_SETSIZE, &s);
- CHK_FAIL_END
-#endif
-
- FD_CLR (FD_SETSIZE - 1, &s);
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- FD_CLR (FD_SETSIZE, &s);
- CHK_FAIL_END
-
- CHK_FAIL_START
- FD_SET (l0 + FD_SETSIZE, &s);
- CHK_FAIL_END
-#endif
-
- FD_ISSET (FD_SETSIZE - 1, &s);
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- FD_ISSET (FD_SETSIZE, &s);
- CHK_FAIL_END
-
- CHK_FAIL_START
- FD_ISSET (l0 + FD_SETSIZE, &s);
- CHK_FAIL_END
-#endif
-
- struct pollfd fds[1];
- fds[0].fd = STDOUT_FILENO;
- fds[0].events = POLLOUT;
- poll (fds, 1, 0);
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- poll (fds, 2, 0);
- CHK_FAIL_END
-
- CHK_FAIL_START
- poll (fds, l0 + 2, 0);
- CHK_FAIL_END
-#endif
- ppoll (fds, 1, NULL, NULL);
-#if __USE_FORTIFY_LEVEL >= 1
- CHK_FAIL_START
- ppoll (fds, 2, NULL, NULL);
- CHK_FAIL_END
-
- CHK_FAIL_START
- ppoll (fds, l0 + 2, NULL, NULL);
- CHK_FAIL_END
-#endif
-
- return ret;
-}
diff --git a/debug/tst-chk2.c b/debug/tst-chk2.c
deleted file mode 100644
index be37ce2d22..0000000000
--- a/debug/tst-chk2.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _FORTIFY_SOURCE 1
-#include "tst-chk1.c"
diff --git a/debug/tst-chk3.c b/debug/tst-chk3.c
deleted file mode 100644
index 38b8e4fb36..0000000000
--- a/debug/tst-chk3.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _FORTIFY_SOURCE 2
-#include "tst-chk1.c"
diff --git a/debug/tst-chk4.cc b/debug/tst-chk4.cc
deleted file mode 100644
index c82e6aac86..0000000000
--- a/debug/tst-chk4.cc
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-chk1.c"
diff --git a/debug/tst-chk5.cc b/debug/tst-chk5.cc
deleted file mode 100644
index be37ce2d22..0000000000
--- a/debug/tst-chk5.cc
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _FORTIFY_SOURCE 1
-#include "tst-chk1.c"
diff --git a/debug/tst-chk6.cc b/debug/tst-chk6.cc
deleted file mode 100644
index 38b8e4fb36..0000000000
--- a/debug/tst-chk6.cc
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _FORTIFY_SOURCE 2
-#include "tst-chk1.c"
diff --git a/debug/tst-lfschk1.c b/debug/tst-lfschk1.c
deleted file mode 100644
index f3e6d47d5e..0000000000
--- a/debug/tst-lfschk1.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _FILE_OFFSET_BITS 64
-#include "tst-chk1.c"
diff --git a/debug/tst-lfschk2.c b/debug/tst-lfschk2.c
deleted file mode 100644
index 95d4db1d32..0000000000
--- a/debug/tst-lfschk2.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _FILE_OFFSET_BITS 64
-#include "tst-chk2.c"
diff --git a/debug/tst-lfschk3.c b/debug/tst-lfschk3.c
deleted file mode 100644
index 50a1ae1258..0000000000
--- a/debug/tst-lfschk3.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _FILE_OFFSET_BITS 64
-#include "tst-chk3.c"
diff --git a/debug/tst-lfschk4.cc b/debug/tst-lfschk4.cc
deleted file mode 100644
index f3e6d47d5e..0000000000
--- a/debug/tst-lfschk4.cc
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _FILE_OFFSET_BITS 64
-#include "tst-chk1.c"
diff --git a/debug/tst-lfschk5.cc b/debug/tst-lfschk5.cc
deleted file mode 100644
index 95d4db1d32..0000000000
--- a/debug/tst-lfschk5.cc
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _FILE_OFFSET_BITS 64
-#include "tst-chk2.c"
diff --git a/debug/tst-lfschk6.cc b/debug/tst-lfschk6.cc
deleted file mode 100644
index 50a1ae1258..0000000000
--- a/debug/tst-lfschk6.cc
+++ /dev/null
@@ -1,2 +0,0 @@
-#define _FILE_OFFSET_BITS 64
-#include "tst-chk3.c"
diff --git a/debug/tst-longjmp_chk.c b/debug/tst-longjmp_chk.c
deleted file mode 100644
index e4e93d2a36..0000000000
--- a/debug/tst-longjmp_chk.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Basic test to make sure doing a longjmp to a jmpbuf with an invalid sp
- is caught by the fortification code. */
-#include <errno.h>
-#include <fcntl.h>
-#include <paths.h>
-#include <setjmp.h>
-#include <signal.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int do_test(void);
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-
-static jmp_buf b;
-
-
-static void
-__attribute__ ((noinline))
-f (void)
-{
- char buf[1000];
- asm volatile ("" : "=m" (buf));
-
- if (setjmp (b) != 0)
- {
- puts ("second longjmp succeeded");
- exit (1);
- }
-}
-
-
-static bool expected_to_fail;
-
-
-static void
-handler (int sig)
-{
- if (expected_to_fail)
- _exit (0);
- else
- {
- static const char msg[] = "unexpected longjmp failure\n";
- TEMP_FAILURE_RETRY (write (STDOUT_FILENO, msg, sizeof (msg) - 1));
- _exit (1);
- }
-}
-
-
-static int
-do_test (void)
-{
- set_fortify_handler (handler);
-
-
- expected_to_fail = false;
-
- if (setjmp (b) == 0)
- {
- longjmp (b, 1);
- /* NOTREACHED */
- printf ("first longjmp returned\n");
- return 1;
- }
-
-
- expected_to_fail = true;
-
- f ();
- longjmp (b, 1);
-
- puts ("second longjmp returned");
- return 1;
-}
diff --git a/debug/tst-longjmp_chk2.c b/debug/tst-longjmp_chk2.c
deleted file mode 100644
index 23d3436d1d..0000000000
--- a/debug/tst-longjmp_chk2.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Verify longjmp fortify checking does not reject signal stacks.
-
- Test case mostly written by Paolo Bonzini <pbonzini@redhat.com>. */
-#include <assert.h>
-#include <setjmp.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <unistd.h>
-
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static jmp_buf mainloop;
-static sigset_t mainsigset;
-static volatile sig_atomic_t pass;
-
-static void
-write_indented (const char *str)
-{
- for (int i = 0; i < pass; ++i)
- write_message (" ");
- write_message (str);
-}
-
-static void
-stackoverflow_handler (int sig)
-{
- stack_t altstack;
- /* Sanity check to keep test from looping forever (in case the longjmp
- chk code is slightly broken). */
- pass++;
- sigaltstack (NULL, &altstack);
- write_indented ("in signal handler\n");
- if (altstack.ss_flags & SS_ONSTACK)
- write_indented ("on alternate stack\n");
- siglongjmp (mainloop, pass);
-}
-
-
-static volatile int *
-recurse_1 (int n, volatile int *p)
-{
- if (n >= 0)
- *recurse_1 (n + 1, p) += n;
- return p;
-}
-
-
-static int
-recurse (int n)
-{
- int sum = 0;
- return *recurse_1 (n, &sum);
-}
-
-
-static int
-do_test (void)
-{
- char mystack[SIGSTKSZ];
- stack_t altstack;
- struct sigaction action;
- sigset_t emptyset;
- /* Before starting the endless recursion, try to be friendly to the user's
- machine. On some Linux 2.2.x systems, there is no stack limit for user
- processes at all. We don't want to kill such systems. */
- struct rlimit rl;
- rl.rlim_cur = rl.rlim_max = 0x100000; /* 1 MB */
- setrlimit (RLIMIT_STACK, &rl);
- /* Install the alternate stack. */
- altstack.ss_sp = mystack;
- altstack.ss_size = sizeof (mystack);
- altstack.ss_flags = 0; /* no SS_DISABLE */
- if (sigaltstack (&altstack, NULL) < 0)
- {
- puts ("first sigaltstack failed");
- return 0;
- }
- /* Install the SIGSEGV handler. */
- sigemptyset (&action.sa_mask);
- action.sa_handler = &stackoverflow_handler;
- action.sa_flags = SA_ONSTACK;
- sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
- sigaction (SIGBUS, &action, (struct sigaction *) NULL);
-
- /* Save the current signal mask. */
- sigemptyset (&emptyset);
- sigprocmask (SIG_BLOCK, &emptyset, &mainsigset);
-
- /* Provoke two stack overflows in a row. */
- if (sigsetjmp (mainloop, 1) != 0)
- {
- assert (pass != 0);
- printf ("%*sout of signal handler\n", pass, "");
- }
- else
- assert (pass == 0);
-
- sigaltstack (NULL, &altstack);
- if (altstack.ss_flags & SS_ONSTACK)
- printf ("%*son alternate stack\n", pass, "");
- else
- printf ("%*snot on alternate stack\n", pass, "");
-
- if (pass < 2)
- {
- recurse (0);
- puts ("recurse call returned");
- return 2;
- }
-
- altstack.ss_flags |= SS_DISABLE;
- if (sigaltstack (&altstack, NULL) == -1)
- printf ("disabling alternate stack failed\n");
- else
- printf ("disabling alternate stack succeeded \n");
-
- /* Restore the signal handlers, in case we trigger a crash after the
- tests above. */
- signal (SIGBUS, SIG_DFL);
- signal (SIGSEGV, SIG_DFL);
-
- return 0;
-}
diff --git a/debug/tst-longjmp_chk3.c b/debug/tst-longjmp_chk3.c
deleted file mode 100644
index 12b367b970..0000000000
--- a/debug/tst-longjmp_chk3.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Make sure longjmp fortification catches bad signal stacks.
- Copyright (C) 2013-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <setjmp.h>
-#include <signal.h>
-#include <string.h>
-
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static char buf[SIGSTKSZ * 4];
-static jmp_buf jb;
-
-static void
-handler (int sig)
-{
- if (sig == SIGUSR1)
- {
- if (setjmp (jb) != 0)
- {
- puts ("setjmp should not have been called");
- kill (getpid (), SIGTERM);
- }
- }
- else if (sig == SIGABRT)
- {
- /* Yeah it worked. */
- _exit (0);
- }
-}
-
-static int
-do_test (void)
-{
- stack_t ss;
-
- set_fortify_handler (handler);
-
- /* Create a valid signal stack and enable it. */
- ss.ss_sp = buf;
- ss.ss_size = sizeof (buf);
- ss.ss_flags = 0;
- if (sigaltstack (&ss, NULL) < 0)
- {
- printf ("first sigaltstack failed: %m\n");
- return 1;
- }
-
- /* Trigger the signal handler which will create a jmpbuf that points to the
- end of the signal stack. */
- signal (SIGUSR1, handler);
- kill (getpid (), SIGUSR1);
-
- /* Shrink the signal stack so the jmpbuf is now invalid.
- We adjust the start & end to handle stacks that grow up & down. */
- ss.ss_sp = buf + sizeof (buf) / 2;
- ss.ss_size = sizeof (buf) / 4;
- if (sigaltstack (&ss, NULL) < 0)
- {
- printf ("second sigaltstack failed: %m\n");
- return 1;
- }
-
- /* This should fail. */
- longjmp (jb, 1);
-
- puts ("longjmp returned and shouldn't");
- return 1;
-}
diff --git a/debug/ttyname_r_chk.c b/debug/ttyname_r_chk.c
deleted file mode 100644
index 5e74df811a..0000000000
--- a/debug/ttyname_r_chk.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-
-
-int
-__ttyname_r_chk (int fd, char *buf, size_t buflen, size_t nreal)
-{
- if (buflen > nreal)
- __chk_fail ();
-
- return __ttyname_r (fd, buf, buflen);
-}
diff --git a/debug/vasprintf_chk.c b/debug/vasprintf_chk.c
deleted file mode 100644
index 5ebfeed239..0000000000
--- a/debug/vasprintf_chk.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 1995-2017 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
- <http://www.gnu.org/licenses/>.
-
- As a special exception, if you link the code in this file with
- files compiled with a GNU compiler to produce an executable,
- that does not cause the resulting executable to be covered by
- the GNU Lesser General Public License. This exception does not
- however invalidate any other reasons why the executable file
- might be covered by the GNU Lesser General Public License.
- This exception applies to code released by its copyright holders
- in files containing the exception. */
-
-#include <malloc.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include "../libio/libioP.h"
-#include "../libio/strfile.h"
-
-int
-__vasprintf_chk (char **result_ptr, int flags, const char *format,
- va_list args)
-{
- /* Initial size of the buffer to be used. Will be doubled each time an
- overflow occurs. */
- const _IO_size_t init_string_size = 100;
- char *string;
- _IO_strfile sf;
- int ret;
- _IO_size_t needed;
- _IO_size_t allocated;
- /* No need to clear the memory here (unlike for open_memstream) since
- we know we will never seek on the stream. */
- string = (char *) malloc (init_string_size);
- if (string == NULL)
- return -1;
-#ifdef _IO_MTSAFE_IO
- sf._sbf._f._lock = NULL;
-#endif
- _IO_no_init (&sf._sbf._f, _IO_USER_LOCK, -1, NULL, NULL);
- _IO_JUMPS (&sf._sbf) = &_IO_str_jumps;
- _IO_str_init_static_internal (&sf, string, init_string_size, string);
- sf._sbf._f._flags &= ~_IO_USER_BUF;
- sf._s._allocate_buffer = (_IO_alloc_type) malloc;
- sf._s._free_buffer = (_IO_free_type) free;
-
- /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
- can only come from read-only format strings. */
- if (flags > 0)
- sf._sbf._f._flags2 |= _IO_FLAGS2_FORTIFY;
-
- ret = _IO_vfprintf (&sf._sbf._f, format, args);
- if (ret < 0)
- {
- free (sf._sbf._f._IO_buf_base);
- return ret;
- }
- /* Only use realloc if the size we need is of the same (binary)
- order of magnitude then the memory we allocated. */
- needed = sf._sbf._f._IO_write_ptr - sf._sbf._f._IO_write_base + 1;
- allocated = sf._sbf._f._IO_write_end - sf._sbf._f._IO_write_base;
- if ((allocated >> 1) <= needed)
- *result_ptr = (char *) realloc (sf._sbf._f._IO_buf_base, needed);
- else
- {
- *result_ptr = (char *) malloc (needed);
- if (*result_ptr != NULL)
- {
- memcpy (*result_ptr, sf._sbf._f._IO_buf_base, needed - 1);
- free (sf._sbf._f._IO_buf_base);
- }
- else
- /* We have no choice, use the buffer we already have. */
- *result_ptr = (char *) realloc (sf._sbf._f._IO_buf_base, needed);
- }
- if (*result_ptr == NULL)
- *result_ptr = sf._sbf._f._IO_buf_base;
- (*result_ptr)[needed - 1] = '\0';
- return ret;
-}
-libc_hidden_def (__vasprintf_chk)
diff --git a/debug/vdprintf_chk.c b/debug/vdprintf_chk.c
deleted file mode 100644
index 1bbeedb02e..0000000000
--- a/debug/vdprintf_chk.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (C) 1995-2017 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
- <http://www.gnu.org/licenses/>.
-
- As a special exception, if you link the code in this file with
- files compiled with a GNU compiler to produce an executable,
- that does not cause the resulting executable to be covered by
- the GNU Lesser General Public License. This exception does not
- however invalidate any other reasons why the executable file
- might be covered by the GNU Lesser General Public License.
- This exception applies to code released by its copyright holders
- in files containing the exception. */
-
-#include <libioP.h>
-#include <stdio_ext.h>
-
-int
-__vdprintf_chk (int d, int flags, const char *format, va_list arg)
-{
- struct _IO_FILE_plus tmpfil;
- struct _IO_wide_data wd;
- int done;
-
-#ifdef _IO_MTSAFE_IO
- tmpfil.file._lock = NULL;
-#endif
- _IO_no_init (&tmpfil.file, _IO_USER_LOCK, 0, &wd, &_IO_wfile_jumps);
- _IO_JUMPS (&tmpfil) = &_IO_file_jumps;
- _IO_new_file_init_internal (&tmpfil);
-#if !_IO_UNIFIED_JUMPTABLES
- tmpfil.vtable = NULL;
-#endif
- if (_IO_file_attach (&tmpfil.file, d) == NULL)
- {
- _IO_un_link (&tmpfil);
- return EOF;
- }
- tmpfil.file._flags |= _IO_DELETE_DONT_CLOSE;
-
- _IO_mask_flags (&tmpfil.file, _IO_NO_READS,
- _IO_NO_READS+_IO_NO_WRITES+_IO_IS_APPENDING);
-
- /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
- can only come from read-only format strings. */
- if (flags > 0)
- tmpfil.file._flags2 |= _IO_FLAGS2_FORTIFY;
-
- done = _IO_vfprintf (&tmpfil.file, format, arg);
-
- _IO_FINISH (&tmpfil.file);
-
- return done;
-}
-libc_hidden_def (__vdprintf_chk)
diff --git a/debug/vfprintf_chk.c b/debug/vfprintf_chk.c
deleted file mode 100644
index 6916a816a1..0000000000
--- a/debug/vfprintf_chk.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include "../libio/libioP.h"
-
-
-/* Write formatted output to FP from the format string FORMAT. */
-int
-___vfprintf_chk (FILE *fp, int flag, const char *format, va_list ap)
-{
- int done;
-
- _IO_acquire_lock_clear_flags2 (fp);
- if (flag > 0)
- fp->_flags2 |= _IO_FLAGS2_FORTIFY;
-
- done = vfprintf (fp, format, ap);
-
- if (flag > 0)
- fp->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (fp);
-
- return done;
-}
-ldbl_hidden_def (___vfprintf_chk, __vfprintf_chk)
-ldbl_strong_alias (___vfprintf_chk, __vfprintf_chk)
diff --git a/debug/vfwprintf_chk.c b/debug/vfwprintf_chk.c
deleted file mode 100644
index 4f05b3303b..0000000000
--- a/debug/vfwprintf_chk.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <wchar.h>
-#include "../libio/libioP.h"
-
-
-/* Write formatted output to FP from the format string FORMAT. */
-int
-__vfwprintf_chk (FILE *fp, int flag, const wchar_t *format, va_list ap)
-{
- int done;
-
- _IO_acquire_lock_clear_flags2 (fp);
- if (flag > 0)
- fp->_flags2 |= _IO_FLAGS2_FORTIFY;
-
- done = _IO_vfwprintf (fp, format, ap);
-
- if (flag > 0)
- fp->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (fp);
-
- return done;
-}
-libc_hidden_def (__vfwprintf_chk)
diff --git a/debug/vprintf_chk.c b/debug/vprintf_chk.c
deleted file mode 100644
index d28a0f1db3..0000000000
--- a/debug/vprintf_chk.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include "../libio/libioP.h"
-
-
-/* Write formatted output to stdout from the format string FORMAT. */
-int
-___vprintf_chk (int flag, const char *format, va_list ap)
-{
- int done;
-
- _IO_acquire_lock_clear_flags2 (stdout);
- if (flag > 0)
- stdout->_flags2 |= _IO_FLAGS2_FORTIFY;
-
- done = vfprintf (stdout, format, ap);
-
- if (flag > 0)
- stdout->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (stdout);
-
- return done;
-}
-ldbl_strong_alias (___vprintf_chk, __vprintf_chk)
diff --git a/debug/vsnprintf_chk.c b/debug/vsnprintf_chk.c
deleted file mode 100644
index ff911e33bb..0000000000
--- a/debug/vsnprintf_chk.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include "../libio/libioP.h"
-#include "../libio/strfile.h"
-
-extern const struct _IO_jump_t _IO_strn_jumps libio_vtable attribute_hidden;
-
-/* Write formatted output into S, according to the format
- string FORMAT, writing no more than MAXLEN characters. */
-/* VARARGS5 */
-int
-___vsnprintf_chk (char *s, size_t maxlen, int flags, size_t slen,
- const char *format, va_list args)
-{
- /* XXX Maybe for less strict version do not fail immediately.
- Though, maxlen is supposed to be the size of buffer pointed
- to by s, so a conforming program can't pass such maxlen
- to *snprintf. */
- if (__glibc_unlikely (slen < maxlen))
- __chk_fail ();
-
- _IO_strnfile sf;
- int ret;
-#ifdef _IO_MTSAFE_IO
- sf.f._sbf._f._lock = NULL;
-#endif
-
- /* We need to handle the special case where MAXLEN is 0. Use the
- overflow buffer right from the start. */
- if (maxlen == 0)
- {
- s = sf.overflow_buf;
- maxlen = sizeof (sf.overflow_buf);
- }
-
- _IO_no_init (&sf.f._sbf._f, _IO_USER_LOCK, -1, NULL, NULL);
- _IO_JUMPS (&sf.f._sbf) = &_IO_strn_jumps;
- s[0] = '\0';
-
- /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
- can only come from read-only format strings. */
- if (flags > 0)
- sf.f._sbf._f._flags2 |= _IO_FLAGS2_FORTIFY;
-
- _IO_str_init_static_internal (&sf.f, s, maxlen - 1, s);
- ret = _IO_vfprintf (&sf.f._sbf._f, format, args);
-
- if (sf.f._sbf._f._IO_buf_base != sf.overflow_buf)
- *sf.f._sbf._f._IO_write_ptr = '\0';
- return ret;
-}
-ldbl_hidden_def (___vsnprintf_chk, __vsnprintf_chk)
-ldbl_strong_alias (___vsnprintf_chk, __vsnprintf_chk)
diff --git a/debug/vsprintf_chk.c b/debug/vsprintf_chk.c
deleted file mode 100644
index d47bdaefef..0000000000
--- a/debug/vsprintf_chk.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright (C) 1994-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include "../libio/libioP.h"
-#include "../libio/strfile.h"
-
-
-static int _IO_str_chk_overflow (_IO_FILE *fp, int c) __THROW;
-
-static int
-_IO_str_chk_overflow (_IO_FILE *fp, int c)
-{
- /* When we come to here this means the user supplied buffer is
- filled. */
- __chk_fail ();
-}
-
-
-static const struct _IO_jump_t _IO_str_chk_jumps libio_vtable =
-{
- JUMP_INIT_DUMMY,
- JUMP_INIT(finish, _IO_str_finish),
- JUMP_INIT(overflow, _IO_str_chk_overflow),
- JUMP_INIT(underflow, _IO_str_underflow),
- JUMP_INIT(uflow, _IO_default_uflow),
- JUMP_INIT(pbackfail, _IO_str_pbackfail),
- JUMP_INIT(xsputn, _IO_default_xsputn),
- JUMP_INIT(xsgetn, _IO_default_xsgetn),
- JUMP_INIT(seekoff, _IO_str_seekoff),
- JUMP_INIT(seekpos, _IO_default_seekpos),
- JUMP_INIT(setbuf, _IO_default_setbuf),
- JUMP_INIT(sync, _IO_default_sync),
- JUMP_INIT(doallocate, _IO_default_doallocate),
- JUMP_INIT(read, _IO_default_read),
- JUMP_INIT(write, _IO_default_write),
- JUMP_INIT(seek, _IO_default_seek),
- JUMP_INIT(close, _IO_default_close),
- JUMP_INIT(stat, _IO_default_stat),
- JUMP_INIT(showmanyc, _IO_default_showmanyc),
- JUMP_INIT(imbue, _IO_default_imbue)
-};
-
-
-int
-___vsprintf_chk (char *s, int flags, size_t slen, const char *format,
- va_list args)
-{
- _IO_strfile f;
- int ret;
-#ifdef _IO_MTSAFE_IO
- f._sbf._f._lock = NULL;
-#endif
-
- if (slen == 0)
- __chk_fail ();
-
- _IO_no_init (&f._sbf._f, _IO_USER_LOCK, -1, NULL, NULL);
- _IO_JUMPS (&f._sbf) = &_IO_str_chk_jumps;
- s[0] = '\0';
- _IO_str_init_static_internal (&f, s, slen - 1, s);
-
- /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
- can only come from read-only format strings. */
- if (flags > 0)
- f._sbf._f._flags2 |= _IO_FLAGS2_FORTIFY;
-
- ret = _IO_vfprintf (&f._sbf._f, format, args);
-
- *f._sbf._f._IO_write_ptr = '\0';
- return ret;
-}
-ldbl_hidden_def (___vsprintf_chk, __vsprintf_chk)
-ldbl_strong_alias (___vsprintf_chk, __vsprintf_chk)
diff --git a/debug/vswprintf_chk.c b/debug/vswprintf_chk.c
deleted file mode 100644
index 35d40263db..0000000000
--- a/debug/vswprintf_chk.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <wchar.h>
-#include "../libio/libioP.h"
-#include "../libio/strfile.h"
-
-
-/* Write formatted output into S, according to the format
- string FORMAT, writing no more than MAXLEN characters. */
-/* VARARGS5 */
-int
-__vswprintf_chk (wchar_t *s, size_t maxlen, int flags, size_t slen,
- const wchar_t *format, va_list args)
-{
- /* XXX Maybe for less strict version do not fail immediately.
- Though, maxlen is supposed to be the size of buffer pointed
- to by s, so a conforming program can't pass such maxlen
- to *snprintf. */
- if (__glibc_unlikely (slen < maxlen))
- __chk_fail ();
-
- _IO_wstrnfile sf;
- struct _IO_wide_data wd;
- int ret;
-#ifdef _IO_MTSAFE_IO
- sf.f._sbf._f._lock = NULL;
-#endif
-
- /* We need to handle the special case where MAXLEN is 0. Use the
- overflow buffer right from the start. */
- if (__glibc_unlikely (maxlen == 0))
- /* Since we have to write at least the terminating L'\0' a buffer
- length of zero always makes the function fail. */
- return -1;
-
- _IO_no_init (&sf.f._sbf._f, _IO_USER_LOCK, 0, &wd, &_IO_wstrn_jumps);
- _IO_fwide (&sf.f._sbf._f, 1);
- s[0] = L'\0';
-
- /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
- can only come from read-only format strings. */
- if (flags > 0)
- sf.f._sbf._f._flags2 |= _IO_FLAGS2_FORTIFY;
-
- _IO_wstr_init_static (&sf.f._sbf._f, s, maxlen - 1, s);
- ret = _IO_vfwprintf ((_IO_FILE *) &sf.f._sbf, format, args);
-
- if (sf.f._sbf._f._wide_data->_IO_buf_base == sf.overflow_buf)
- /* ISO C99 requires swprintf/vswprintf to return an error if the
- output does not fit int he provided buffer. */
- return -1;
-
- /* Terminate the string. */
- *sf.f._sbf._f._wide_data->_IO_write_ptr = '\0';
-
- return ret;
-}
-libc_hidden_def (__vswprintf_chk)
diff --git a/debug/vwprintf_chk.c b/debug/vwprintf_chk.c
deleted file mode 100644
index 1cd53a35a7..0000000000
--- a/debug/vwprintf_chk.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <wchar.h>
-#include "../libio/libioP.h"
-
-
-/* Write formatted output to stdout from the format string FORMAT. */
-int
-__vwprintf_chk (int flag, const wchar_t *format, va_list ap)
-{
- int done;
-
- _IO_acquire_lock_clear_flags2 (stdout);
- if (flag > 0)
- stdout->_flags2 |= _IO_FLAGS2_FORTIFY;
-
- done = _IO_vfwprintf (stdout, format, ap);
-
- if (flag > 0)
- stdout->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (stdout);
-
- return done;
-}
diff --git a/debug/warning-nop.c b/debug/warning-nop.c
deleted file mode 100644
index 8a740da36a..0000000000
--- a/debug/warning-nop.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Dummy nop functions to elicit link-time warnings.
- Copyright (C) 2005-2017 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.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/cdefs.h>
-
-static void
-__attribute__ ((used))
-nop (void)
-{
-}
-
-/* Don't insert any other #include's before this #undef! */
-
-#undef __warndecl
-#define __warndecl(name, msg) \
- extern void name (void) __attribute__ ((alias ("nop"))) attribute_hidden; \
- link_warning (name, msg)
-
-#undef __USE_FORTIFY_LEVEL
-#define __USE_FORTIFY_LEVEL 99
-
-/* Following here we need an #include for each public header file
- that uses __warndecl. */
-
-/* Define away to avoid warnings with compilers that do not have these
- builtins. */
-#define __builtin___memcpy_chk(dest, src, len, bos) NULL
-#define __builtin___memmove_chk(dest, src, len, bos) NULL
-#define __builtin___mempcpy_chk(dest, src, len, bos) NULL
-#define __builtin___memset_chk(dest, ch, len, bos) NULL
-#define __builtin___stpcpy_chk(dest, src, bos) NULL
-#define __builtin___strcat_chk(dest, src, bos) NULL
-#define __builtin___strcpy_chk(dest, src, bos) NULL
-#define __builtin___strncat_chk(dest, src, len, bos) NULL
-#define __builtin___strncpy_chk(dest, src, len, bos) NULL
-#define __builtin_object_size(bos, level) 0
-
-#include <string.h>
diff --git a/debug/wcpcpy_chk.c b/debug/wcpcpy_chk.c
deleted file mode 100644
index a0dbbf3b14..0000000000
--- a/debug/wcpcpy_chk.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-#define __need_ptrdiff_t
-#include <stddef.h>
-
-
-/* Copy SRC to DEST, returning the address of the terminating L'\0' in
- DEST. Check for overflows. */
-wchar_t *
-__wcpcpy_chk (wchar_t *dest, const wchar_t *src, size_t destlen)
-{
- wchar_t *wcp = (wchar_t *) dest - 1;
- wint_t c;
- const ptrdiff_t off = src - dest + 1;
-
- do
- {
- if (__glibc_unlikely (destlen-- == 0))
- __chk_fail ();
- c = wcp[off];
- *++wcp = c;
- }
- while (c != L'\0');
-
- return wcp;
-}
diff --git a/debug/wcpncpy_chk.c b/debug/wcpncpy_chk.c
deleted file mode 100644
index 99f8be38af..0000000000
--- a/debug/wcpncpy_chk.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-
-/* Copy no more than N wide-characters of SRC to DEST. */
-wchar_t *
-__wcpncpy_chk (wchar_t *dest, const wchar_t *src, size_t n, size_t destlen)
-{
- if (__glibc_unlikely (destlen < n))
- __chk_fail ();
-
- /* This function is not often enough used to justify not using a
- tail call. */
- return __wcpncpy (dest, src, n);
-}
diff --git a/debug/wcrtomb_chk.c b/debug/wcrtomb_chk.c
deleted file mode 100644
index c71212e3da..0000000000
--- a/debug/wcrtomb_chk.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <langinfo.h>
-#include <locale.h>
-#include <stdlib.h>
-#include <wchar.h>
-#include <locale/localeinfo.h>
-
-
-size_t
-__wcrtomb_chk (char *s, wchar_t wchar, mbstate_t *ps, size_t buflen)
-{
- /* We do not have to implement the full wctomb semantics since we
- know that S cannot be NULL when we come here. */
- if (buflen < MB_CUR_MAX)
- __chk_fail ();
-
- return __wcrtomb (s, wchar, ps);
-}
diff --git a/debug/wcscat_chk.c b/debug/wcscat_chk.c
deleted file mode 100644
index a528f06b57..0000000000
--- a/debug/wcscat_chk.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-
-/* Append SRC on the end of DEST. Check for overflows. */
-wchar_t *
-__wcscat_chk (wchar_t *dest, const wchar_t *src, size_t destlen)
-{
- wchar_t *s1 = dest;
- const wchar_t *s2 = src;
- wchar_t c;
-
- /* Find the end of the string. */
- do
- {
- if (__glibc_unlikely (destlen-- == 0))
- __chk_fail ();
- c = *s1++;
- }
- while (c != L'\0');
-
- /* Make S1 point before the next character, so we can increment
- it while memory is read (wins on pipelined cpus). */
- s1 -= 2;
- ++destlen;
-
- do
- {
- if (__glibc_unlikely (destlen-- == 0))
- __chk_fail ();
- c = *s2++;
- *++s1 = c;
- }
- while (c != L'\0');
-
- return dest;
-}
diff --git a/debug/wcscpy_chk.c b/debug/wcscpy_chk.c
deleted file mode 100644
index 0c2d0924a4..0000000000
--- a/debug/wcscpy_chk.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <wchar.h>
-
-
-/* Copy SRC to DEST. */
-wchar_t *
-__wcscpy_chk (wchar_t *dest, const wchar_t *src, size_t n)
-{
- wint_t c;
- wchar_t *wcp;
-
- if (__alignof__ (wchar_t) >= sizeof (wchar_t))
- {
- const ptrdiff_t off = dest - src - 1;
-
- wcp = (wchar_t *) src;
-
- do
- {
- if (__glibc_unlikely (n-- == 0))
- __chk_fail ();
- c = *wcp++;
- wcp[off] = c;
- }
- while (c != L'\0');
- }
- else
- {
- wcp = dest;
-
- do
- {
- if (__glibc_unlikely (n-- == 0))
- __chk_fail ();
- c = *src++;
- *wcp++ = c;
- }
- while (c != L'\0');
- }
-
- return dest;
-}
diff --git a/debug/wcsncat_chk.c b/debug/wcsncat_chk.c
deleted file mode 100644
index 74d428ff63..0000000000
--- a/debug/wcsncat_chk.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-
-/* Append no more than N wide-character of SRC onto DEST. */
-wchar_t *
-__wcsncat_chk (wchar_t *dest, const wchar_t *src, size_t n, size_t destlen)
-{
- wchar_t c;
- wchar_t * const s = dest;
-
- /* Find the end of DEST. */
- do
- {
- if (__glibc_unlikely (destlen-- == 0))
- __chk_fail ();
- c = *dest++;
- }
- while (c != L'\0');
-
- /* Make DEST point before next character, so we can increment
- it while memory is read (wins on pipelined cpus). */
- ++destlen;
- dest -= 2;
-
- if (n >= 4)
- {
- size_t n4 = n >> 2;
- do
- {
- if (__glibc_unlikely (destlen-- == 0))
- __chk_fail ();
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- return s;
- if (__glibc_unlikely (destlen-- == 0))
- __chk_fail ();
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- return s;
- if (__glibc_unlikely (destlen-- == 0))
- __chk_fail ();
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- return s;
- if (__glibc_unlikely (destlen-- == 0))
- __chk_fail ();
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- return s;
- } while (--n4 > 0);
- n &= 3;
- }
-
- while (n > 0)
- {
- if (__glibc_unlikely (destlen-- == 0))
- __chk_fail ();
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- return s;
- n--;
- }
-
- if (c != L'\0')
- {
- if (__glibc_unlikely (destlen-- == 0))
- __chk_fail ();
- *++dest = L'\0';
- }
-
- return s;
-}
diff --git a/debug/wcsncpy_chk.c b/debug/wcsncpy_chk.c
deleted file mode 100644
index d4383e4399..0000000000
--- a/debug/wcsncpy_chk.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-
-/* Copy no more than N wide-characters of SRC to DEST. */
-wchar_t *
-__wcsncpy_chk (wchar_t *dest, const wchar_t *src, size_t n, size_t destlen)
-{
- if (__glibc_unlikely (destlen < n))
- __chk_fail ();
-
- /* This function is not often enough used to justify not using a
- tail call. */
- return __wcsncpy (dest, src, n);
-}
diff --git a/debug/wcsnrtombs_chk.c b/debug/wcsnrtombs_chk.c
deleted file mode 100644
index 0c9deb42fb..0000000000
--- a/debug/wcsnrtombs_chk.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <locale.h>
-#include <wchar.h>
-
-
-size_t
-__wcsnrtombs_chk (char *dst, const wchar_t **src, size_t nwc, size_t len,
- mbstate_t *ps, size_t dstlen)
-{
- if (__glibc_unlikely (dstlen < len))
- __chk_fail ();
-
- return __wcsnrtombs (dst, src, nwc, len, ps);
-}
diff --git a/debug/wcsrtombs_chk.c b/debug/wcsrtombs_chk.c
deleted file mode 100644
index 46b335ddff..0000000000
--- a/debug/wcsrtombs_chk.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <locale.h>
-#include <wchar.h>
-
-
-size_t
-__wcsrtombs_chk (char *dst, const wchar_t **src, size_t len,
- mbstate_t *ps, size_t dstlen)
-{
- if (__glibc_unlikely (dstlen < len))
- __chk_fail ();
-
- return __wcsrtombs (dst, src, len, ps);
-}
diff --git a/debug/wcstombs_chk.c b/debug/wcstombs_chk.c
deleted file mode 100644
index 3e6b437f56..0000000000
--- a/debug/wcstombs_chk.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-
-
-size_t
-__wcstombs_chk (char *dst, const wchar_t *src, size_t len, size_t dstlen)
-{
- if (__glibc_unlikely (dstlen < len))
- __chk_fail ();
-
- mbstate_t state;
-
- memset (&state, '\0', sizeof state);
-
- /* Return how many we wrote (or maybe an error). */
- return __wcsrtombs (dst, &src, len, &state);
-}
diff --git a/debug/wctomb_chk.c b/debug/wctomb_chk.c
deleted file mode 100644
index 4c396ef315..0000000000
--- a/debug/wctomb_chk.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2005-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <locale.h>
-#include <stdlib.h>
-#include <wcsmbs/wcsmbsload.h>
-
-
-extern mbstate_t __wctomb_state attribute_hidden; /* Defined in wctomb.c. */
-
-
-int
-__wctomb_chk (char *s, wchar_t wchar, size_t buflen)
-{
- /* We do not have to implement the full wctomb semantics since we
- know that S cannot be NULL when we come here. */
- if (buflen < MB_CUR_MAX)
- __chk_fail ();
-
- return __wcrtomb (s, wchar, &__wctomb_state);
-}
diff --git a/debug/wmemcpy_chk.c b/debug/wmemcpy_chk.c
deleted file mode 100644
index 73aa837ef2..0000000000
--- a/debug/wmemcpy_chk.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-#include <string.h>
-
-
-wchar_t *
-__wmemcpy_chk (wchar_t *s1, const wchar_t *s2, size_t n, size_t ns1)
-{
- if (__glibc_unlikely (ns1 < n))
- __chk_fail ();
- return (wchar_t *) memcpy ((char *) s1, (char *) s2, n * sizeof (wchar_t));
-}
diff --git a/debug/wmemmove_chk.c b/debug/wmemmove_chk.c
deleted file mode 100644
index d6a07ff204..0000000000
--- a/debug/wmemmove_chk.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-#include <string.h>
-
-
-wchar_t *
-__wmemmove_chk (wchar_t *s1, const wchar_t *s2, size_t n, size_t ns1)
-{
- if (__glibc_unlikely (ns1 < n))
- __chk_fail ();
- return (wchar_t *) memmove ((char *) s1, (char *) s2, n * sizeof (wchar_t));
-}
diff --git a/debug/wmempcpy_chk.c b/debug/wmempcpy_chk.c
deleted file mode 100644
index 643b7aa75f..0000000000
--- a/debug/wmempcpy_chk.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@gnu.org>, 1999.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-#include <string.h>
-
-
-wchar_t *
-__wmempcpy_chk (wchar_t *s1, const wchar_t *s2, size_t n, size_t ns1)
-{
- if (__glibc_unlikely (ns1 < n))
- __chk_fail ();
- return (wchar_t *) __mempcpy ((char *) s1, (char *) s2,
- n * sizeof (wchar_t));
-}
diff --git a/debug/wmemset_chk.c b/debug/wmemset_chk.c
deleted file mode 100644
index ad05462aa2..0000000000
--- a/debug/wmemset_chk.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-
-wchar_t *
-__wmemset_chk (wchar_t *s, wchar_t c, size_t n, size_t dstlen)
-{
- if (__glibc_unlikely (dstlen < n))
- __chk_fail ();
-
- return wmemset (s, c, n);
-}
diff --git a/debug/wprintf_chk.c b/debug/wprintf_chk.c
deleted file mode 100644
index 5b35050006..0000000000
--- a/debug/wprintf_chk.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 1991-2017 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <wchar.h>
-#include "../libio/libioP.h"
-
-
-/* Write formatted output to stdout from the format string FORMAT. */
-int
-__wprintf_chk (int flag, const wchar_t *format, ...)
-{
- va_list ap;
- int done;
-
- _IO_acquire_lock_clear_flags2 (stdout);
- if (flag > 0)
- stdout->_flags2 |= _IO_FLAGS2_FORTIFY;
-
- va_start (ap, format);
- done = _IO_vfwprintf (stdout, format, ap);
- va_end (ap);
-
- if (flag > 0)
- stdout->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (stdout);
-
- return done;
-}
diff --git a/debug/xtrace.sh b/debug/xtrace.sh
deleted file mode 100755
index fd14f298d9..0000000000
--- a/debug/xtrace.sh
+++ /dev/null
@@ -1,195 +0,0 @@
-#! @BASH@
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-# Contributed by Ulrich Drepper <drepper@gnu.org>, 1999.
-
-# 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
-# <http://www.gnu.org/licenses/>.
-
-pcprofileso='@SLIBDIR@/libpcprofile.so'
-pcprofiledump='@BINDIR@/pcprofiledump'
-TEXTDOMAIN=libc
-
-# Print usage message.
-do_usage() {
- printf $"Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\n"
- exit 0
-}
-
-# Refer to --help option.
-help_info() {
- printf >&2 $"Try \`%s --help' or \`%s --usage' for more information.\n" xtrace xtrace
- exit 1
-}
-
-# Message for missing argument.
-do_missing_arg() {
- printf >&2 $"%s: option '%s' requires an argument.\n" xtrace "$1"
- help_info
-}
-
-# Print help message
-do_help() {
- printf $"Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\n"
- printf $"Trace execution of program by printing currently executed function.
-
- --data=FILE Don't run the program, just print the data from FILE.
-
- -?,--help Print this help and exit
- --usage Give a short usage message
- -V,--version Print version information and exit
-
-Mandatory arguments to long options are also mandatory for any corresponding
-short options.
-
-"
- printf $"For bug reporting instructions, please see:\\n%s.\\n" \
- "@REPORT_BUGS_TO@"
- exit 0
-}
-
-do_version() {
- echo 'xtrace @PKGVERSION@@VERSION@'
- printf $"Copyright (C) %s Free Software Foundation, Inc.
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-" "2017"
- printf $"Written by %s.
-" "Ulrich Drepper"
- exit 0
-}
-
-# Print out function name, file, and line number in a nicely formatted way.
-format_line() {
- fct=$1
- file=${2%%:*}
- line=${2##*:}
- width=$(expr $COLUMNS - 30)
- filelen=$(expr length $file)
- if test "$filelen" -gt "$width"; then
- rwidth=$(expr $width - 3)
- file="...$(expr substr $file $(expr 1 + $filelen - $rwidth) $rwidth)"
- fi
- printf '%-20s %-*s %6s\n' $fct $width $file $line
-}
-
-
-# If the variable COLUMNS is not set do this now.
-COLUMNS=${COLUMNS:-80}
-
-# If `TERMINAL_PROG' is not set, set it to `xterm'.
-TERMINAL_PROG=${TERMINAL_PROG:-xterm}
-
-# The data file to process, if any.
-data=
-
-# Process arguments. But stop as soon as the program name is found.
-while test $# -gt 0; do
- case "$1" in
- --d | --da | --dat | --data)
- if test $# -eq 1; then
- do_missing_arg $1
- fi
- shift
- data="$1"
- ;;
- --d=* | --da=* | --dat=* | --data=*)
- data=${1##*=}
- ;;
- -\? | --h | --he | --hel | --help)
- do_help
- ;;
- -V | --v | --ve | --ver | --vers | --versi | --versio | --version)
- do_version
- ;;
- --u | --us | --usa | --usag | --usage)
- do_usage
- ;;
- --)
- # Stop processing arguments.
- shift
- break
- ;;
- --*)
- printf >&2 $"xtrace: unrecognized option \`$1'\n"
- help_info
- ;;
- *)
- # Unknown option. This means the rest is the program name and parameters.
- break
- ;;
- esac
- shift
-done
-
-# See whether any arguments are left.
-if test $# -eq 0; then
- printf >&2 $"No program name given\n"
- help_info
-fi
-
-# Determine the program name and check whether it exists.
-program=$1
-shift
-if test ! -f "$program"; then
- printf >&2 $"executable \`$program' not found\n"
- help_info
-fi
-if test ! -x "$program"; then
- printf >&2 $"\`$program' is no executable\n"
- help_info
-fi
-
-# We have two modes. If a data file is given simply print the included data.
-printf "%-20s %-*s %6s\n" Function $(expr $COLUMNS - 30) File Line
-for i in $(seq 1 $COLUMNS); do printf -; done; printf '\n'
-if test -n "$data"; then
- $pcprofiledump "$data" |
- sed 's/this = \([^,]*\).*/\1/' |
- addr2line -fC -e "$program" |
- while read fct; do
- read file
- if test "$fct" != '??' -a "$file" != '??:0'; then
- format_line "$fct" "$file"
- fi
- done
-else
- fifo=$(mktemp -ut xtrace.XXXXXX) || exit
- trap 'rm -f "$fifo"; exit 1' HUP INT QUIT TERM PIPE
- mkfifo -m 0600 $fifo || exit 1
-
- # Now start the program and let it write to the FIFO.
- $TERMINAL_PROG -T "xtrace - $program $*" -e /bin/sh -c "LD_PRELOAD=$pcprofileso PCPROFILE_OUTPUT=$fifo $program $*; read < $fifo" &
- termpid=$!
- $pcprofiledump -u "$fifo" |
- while read line; do
- echo "$line" |
- sed 's/this = \([^,]*\).*/\1/' |
- addr2line -fC -e "$program"
- done |
- while read fct; do
- read file
- if test "$fct" != '??' -a "$file" != '??:0'; then
- format_line "$fct" "$file"
- fi
- done
- read -p "Press return here to close $TERMINAL_PROG($program)."
- echo > "$fifo"
- rm "$fifo"
-fi
-
-exit 0
-# Local Variables:
-# mode:ksh
-# End: