diff options
author | Diego Elio Pettenò <flameeyes@gentoo.org> | 2006-04-30 09:13:12 +0000 |
---|---|---|
committer | Diego Elio Pettenò <flameeyes@gentoo.org> | 2006-04-30 09:13:12 +0000 |
commit | b642c6175c257841bdfa89f179bb0d7e806bf80d (patch) | |
tree | b75f4bf2e97e84eaaf2588016dd87f0dedb21b68 /sys-freebsd/freebsd-lib/files | |
parent | Remove nossp masking and unmask hardened useflag. (diff) | |
download | gentoo-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-r3 | 24 | ||||
-rw-r--r-- | sys-freebsd/freebsd-lib/files/freebsd-lib-6.0-ssp.patch | 96 |
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= |