summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Elio Pettenò <flameeyes@gentoo.org>2006-04-30 09:13:12 +0000
committerDiego Elio Pettenò <flameeyes@gentoo.org>2006-04-30 09:13:12 +0000
commitb642c6175c257841bdfa89f179bb0d7e806bf80d (patch)
treeb75f4bf2e97e84eaaf2588016dd87f0dedb21b68 /sys-freebsd/freebsd-lib/files
parentRemove nossp masking and unmask hardened useflag. (diff)
downloadgentoo-2-b642c6175c257841bdfa89f179bb0d7e806bf80d.tar.gz
gentoo-2-b642c6175c257841bdfa89f179bb0d7e806bf80d.tar.bz2
gentoo-2-b642c6175c257841bdfa89f179bb0d7e806bf80d.zip
New patch for ssp support, based on OpenBSD code, too. This version has now the patch by default. Please re-compile gcc if you want to have ssp support, tho.
(Portage version: 2.1_pre10)
Diffstat (limited to 'sys-freebsd/freebsd-lib/files')
-rw-r--r--sys-freebsd/freebsd-lib/files/digest-freebsd-lib-6.0-r324
-rw-r--r--sys-freebsd/freebsd-lib/files/freebsd-lib-6.0-ssp.patch96
2 files changed, 114 insertions, 6 deletions
diff --git a/sys-freebsd/freebsd-lib/files/digest-freebsd-lib-6.0-r3 b/sys-freebsd/freebsd-lib/files/digest-freebsd-lib-6.0-r3
new file mode 100644
index 000000000000..dfc73a573b49
--- /dev/null
+++ b/sys-freebsd/freebsd-lib/files/digest-freebsd-lib-6.0-r3
@@ -0,0 +1,24 @@
+MD5 b5b626909c9707d0bab0c54b50e132b9 freebsd-contrib-6.0.tar.bz2 34972594
+RMD160 3f045dd7d1ddbcf20da670051459f0a2fc508a8b freebsd-contrib-6.0.tar.bz2 34972594
+SHA256 9c76affcddb3a8257d3b612dd7cc8ff43bc7417e47e215c01909a81c79e9d443 freebsd-contrib-6.0.tar.bz2 34972594
+MD5 3f5ace196589dee4044fd717abf4b57c freebsd-crypto-6.0.tar.bz2 3978650
+RMD160 361efbba1f651925a7cc2284665b044bc232f181 freebsd-crypto-6.0.tar.bz2 3978650
+SHA256 e86223d40ef2747de98f575f3875a6ce8a5e913baa850a5ef547ffef00ace480 freebsd-crypto-6.0.tar.bz2 3978650
+MD5 7c2af3af5be2f46372f9cc0efaeda4c7 freebsd-etc-6.0.tar.bz2 178941
+RMD160 48d0eb51f291e5d706ef076151964b88a9fc1796 freebsd-etc-6.0.tar.bz2 178941
+SHA256 c4bd9401dad72bd869b89aa12a61339a30746caadb741bb0d094f522ee117616 freebsd-etc-6.0.tar.bz2 178941
+MD5 0a5937660818157a2a0bf09fe705f24c freebsd-include-6.0.tar.bz2 127219
+RMD160 683fe6cf84961d0019c742f4e1fc0e4bfb18b60c freebsd-include-6.0.tar.bz2 127219
+SHA256 9da34ffd474e023fe7dd203cb035d97726eb8e7bea7e9566249e62da4039be8b freebsd-include-6.0.tar.bz2 127219
+MD5 3888da5da1cb329a65a3ac9d316f99ea freebsd-lib-6.0.tar.bz2 2613087
+RMD160 30bf04438a00408284f135c2670106141cae4873 freebsd-lib-6.0.tar.bz2 2613087
+SHA256 dab1140d52597f37d768d2210a49cb29db5404a7df35306462e3642074426a53 freebsd-lib-6.0.tar.bz2 2613087
+MD5 44996c2edac20108da43add45b599d94 freebsd-libexec-6.0.tar.bz2 277631
+RMD160 5121414524c9dfceab1f5ad8b8bc91c65141db82 freebsd-libexec-6.0.tar.bz2 277631
+SHA256 2eddc867d69afa6c5d0a2f3ce18d4570688b5fa49924adb478dc7d548ba8197e freebsd-libexec-6.0.tar.bz2 277631
+MD5 fa4633806f9ecd13eba57e45e5b6031f freebsd-sys-6.0.tar.bz2 16069887
+RMD160 02b446bb5a3dde2f91ecba2617a887e817d038a9 freebsd-sys-6.0.tar.bz2 16069887
+SHA256 416fc69ab15d28686d461ca115964091409abc9e5855260d89e2370cad77ad70 freebsd-sys-6.0.tar.bz2 16069887
+MD5 df8c3764da190437a1d47c6ff1872520 freebsd-usbin-6.0.tar.bz2 2635411
+RMD160 9a8f5cdc041df1ad2b388c432a1829b5c8adc51d freebsd-usbin-6.0.tar.bz2 2635411
+SHA256 46ac3c581fd20d9980bcf2d80aba7c2f874ad3e29058939bee0c6f1a4af8ff64 freebsd-usbin-6.0.tar.bz2 2635411
diff --git a/sys-freebsd/freebsd-lib/files/freebsd-lib-6.0-ssp.patch b/sys-freebsd/freebsd-lib/files/freebsd-lib-6.0-ssp.patch
index 98e07710f123..e94e5573c3f0 100644
--- a/sys-freebsd/freebsd-lib/files/freebsd-lib-6.0-ssp.patch
+++ b/sys-freebsd/freebsd-lib/files/freebsd-lib-6.0-ssp.patch
@@ -15,20 +15,90 @@ Index: fbsd-6/lib/libc/sys/ssp.c
===================================================================
--- /dev/null
+++ fbsd-6/lib/libc/sys/ssp.c
-@@ -0,0 +1,13 @@
-+#include <stdlib.h>
+@@ -0,0 +1,83 @@
++/*
++ * Copyright (c) 2002 Hiroaki Etoh, Federico G. Schwindt, and Miodrag Vallat.
++ * Copyright (c) 2006 Ned Ludd <solar@gentoo.org>
++ * Diego Pettenò <flameeyes@gentoo.org>
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++ * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT,
++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
++ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
++ * POSSIBILITY OF SUCH DAMAGE.
++ *
++ */
++
+#include <sys/param.h>
+#include <sys/sysctl.h>
++#include <signal.h>
++#include <string.h>
++#include <syslog.h>
++#include <unistd.h>
++#include <stdlib.h>
++
++extern int __sysctl(int *, u_int, void *, size_t *, void *, size_t);
+
+unsigned long __guard = 0UL;
+void __guard_setup(void) __attribute__ ((constructor));
-+void __stack_smash_handler(char func[], int damaged __attribute__ ((unused)));
-+void __guard_setup(void) { if (__guard != 0UL) return; __guard = 0xFF0A0D00UL; }
++void __stack_smash_handler(char func[], int damaged __attribute__((unused)));
+
-+void __stack_smash_handler(char func[], int damaged) {
-+ _exit(127);
++void
++__guard_setup(void)
++{
++ int i, mib[2];
++ size_t len = 4;
++
++ __guard = 0xFF0A0D00UL;
++ if (__guard != 0) return;
++
++ srandomdev();
++
++ __guard = random();
+}
+
++void
++__stack_smash_handler(char func[], int damaged)
++{
++ static const char message[] = "stack overflow in function ";
++ struct sigaction sa;
++ sigset_t mask;
++
++ /* Immediately block all signal handlers from running code */
++ sigfillset(&mask);
++ sigdelset(&mask, SIGABRT);
++ sigprocmask(SIG_BLOCK, &mask, NULL);
++
++ write(2, message, sizeof(message));
++ write(2, func, strlen(func));
++ write(2, "\n", 1);
++
++ bzero(&sa, sizeof(struct sigaction));
++ sigemptyset(&sa.sa_mask);
++ sa.sa_flags = 0;
++ sa.sa_handler = SIG_DFL;
++ sigaction(SIGABRT, &sa, NULL);
++
++ kill(getpid(), SIGABRT);
++
++ _exit(127);
++}
Index: fbsd-6/lib/csu/i386-elf/crt1.c
===================================================================
--- fbsd-6.orig/lib/csu/i386-elf/crt1.c
@@ -49,3 +119,17 @@ Index: fbsd-6/lib/csu/i386-elf/crt1.c
exit( main(argc, argv, env) );
}
+Index: fbsd-6/lib/libc/Makefile
+===================================================================
+--- fbsd-6.orig/lib/libc/Makefile
++++ fbsd-6/lib/libc/Makefile
+@@ -15,6 +15,9 @@ SHLIBDIR?= /lib
+ WARNS?= 2
+ CFLAGS+=-I${.CURDIR}/include -I${.CURDIR}/../../include
+ CFLAGS+=-I${.CURDIR}/${MACHINE_ARCH}
++# Disable stack protection for the only libc, and leave it for the rest of
++# the libraries.
++CFLAGS+= -fno-stack-protector
+ CLEANFILES+=tags
+ INSTALL_PIC_ARCHIVE=
+ PRECIOUSLIB=