Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=wipv.git;a=commitdiff;h=c010f34296971c28e158efeefb4b2265ddf897bb
commit c010f34296971c28e158efeefb4b2265ddf897bb Author: Miklos Vajna <vmik...@frugalware.org> Date: Tue Aug 24 02:48:17 2010 +0200 glibc-2.11.2-2-i686 - revert to glibc-2.11, static pacman-g2 -Sy is broken with 2.12 and so far I haven't found a way to fix it diff --git a/source/base/glibc/CVE-2010-0296.patch b/source/base/glibc/CVE-2010-0296.patch new file mode 100644 index 0000000..83d6413 --- /dev/null +++ b/source/base/glibc/CVE-2010-0296.patch @@ -0,0 +1,13 @@ + misc/mntent_r.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) +--- a/misc/mntent_r.c ++++ a/misc/mntent_r.c +@@ -194,7 +194,7 @@ weak_alias (__getmntent_r, getmntent_r) + const char *rp = name; \ + \ + while (*rp != '\0') \ +- if (*rp == ' ' || *rp == '\t' || *rp == '\\') \ ++ if (*rp == ' ' || *rp == '\t' || *rp == '\n' || *rp == '\\') \ + break; \ + else \ + ++rp; diff --git a/source/base/glibc/CVE-2010-0830.patch b/source/base/glibc/CVE-2010-0830.patch new file mode 100644 index 0000000..f690555 --- /dev/null +++ b/source/base/glibc/CVE-2010-0830.patch @@ -0,0 +1,17 @@ +Description: fix integer underflow that can trigger arbitrary code execution. +Author: Kees Cook <k...@ubuntu.com> +Bug-Ubuntu: https://launchpad.net/bugs/542197 + +Index: eglibc-2.11.1/elf/dynamic-link.h +=================================================================== +--- eglibc-2.11.1.orig/elf/dynamic-link.h 2010-03-25 15:42:22.700708465 -0700 ++++ eglibc-2.11.1/elf/dynamic-link.h 2010-03-25 15:45:26.840772712 -0700 +@@ -113,7 +113,7 @@ + + while (dyn->d_tag != DT_NULL) + { +- if (dyn->d_tag < DT_NUM) ++ if ((Elf32_Word) dyn->d_tag < DT_NUM) + info[dyn->d_tag] = dyn; + else if (dyn->d_tag >= DT_LOPROC && + dyn->d_tag < DT_LOPROC + DT_THISPROCNUM) diff --git a/source/base/glibc/FrugalBuild b/source/base/glibc/FrugalBuild index 5325fd3..c4ca1c2 100644 --- a/source/base/glibc/FrugalBuild +++ b/source/base/glibc/FrugalBuild @@ -3,7 +3,7 @@ # Contributor: Miklos Vajna <vmik...@frugalware.org> pkgname=glibc -pkgver=2.12.1 +pkgver=2.11.2 pkgrel=2 pkgdesc="GNU C Library" url="http://www.gnu.org/software/libc/libc.html" @@ -14,13 +14,13 @@ makedepends=("${makedepen...@]}" 'gd>=2.0.35-2') rodepends=('tzdata') groups=('base' 'chroot-core') archs=('i686' 'x86_64' 'ppc') +options=('force') Fup2gnubz2 source=(http://ftp.gnu.org/pub/gnu/glibc/glibc-$pkgver.tar.bz2 \ - fix-missing-etc-hosts.patch gcc45.patch glibc-2.12-static-glro-init.patch) -sha1sums=('ef5ca1e765719d3290bd24f94705f27534f3744b' \ + fix-missing-etc-hosts.patch gcc45.patch) +sha1sums=('23b477f4816a97e007be1e98abc1ffe2af13ba9e' \ 'be4a7bea8af743331e2c6704faa24b6cb4e155d5' \ - '2283966c4f48bbc9b6ad0ae3bbd64601c057c721' \ - 'd442ddcbebd458eb64c3c6e76225d24504e5a335') + '2283966c4f48bbc9b6ad0ae3bbd64601c057c721') build() { diff --git a/source/base/glibc/glibc-2.12-static-glro-init.patch b/source/base/glibc/glibc-2.12-static-glro-init.patch deleted file mode 100644 index 623efac..0000000 --- a/source/base/glibc/glibc-2.12-static-glro-init.patch +++ /dev/null @@ -1,295 +0,0 @@ -2010-08-18 Mike Frysinger <vap...@gentoo.org> - - * sysdeps/unix/sysv/linux/ia64/Makefile: Move dl-static addition to - sysdep vars for subdir==elf to ... - * sysdeps/unix/sysv/linux/Makefile: ... here. - * sysdeps/unix/sysv/linux/ia64/dl-static.c: Move file to ... - * sysdeps/unix/sysv/linux/dl-static.c: ... here. - * sysdeps/unix/sysv/linux/ia64/ldsodefs.h: Delete, and move the - DL_STATIC_INIT defines to ... - * sysdeps/unix/sysv/linux/ldsodefs.h: ... here. - * sysdeps/unix/sysv/linux/ia64/getpagesize.c: Delete. - -diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile -index d9a35a7..3bb1ce0 100644 ---- a/sysdeps/unix/sysv/linux/ia64/Makefile -+++ b/sysdeps/unix/sysv/linux/ia64/Makefile -@@ -12,12 +12,6 @@ sysdep_headers += sys/io.h - sysdep_routines += ioperm clone2 - endif - --ifeq ($(subdir),elf) --sysdep-dl-routines += dl-static --sysdep_routines += $(sysdep-dl-routines) --sysdep-rtld-routines += $(sysdep-dl-routines) --endif -- - ifeq ($(subdir),rt) - librt-routines += rt-sysdep - endif -diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile -index 4302bd3..37c56a3 100644 ---- a/sysdeps/unix/sysv/linux/Makefile -+++ b/sysdeps/unix/sysv/linux/Makefile -@@ -147,7 +147,9 @@ sysdep_routines += xstatconv internal_statvfs internal_statvfs64 \ - endif - - ifeq ($(subdir),elf) --sysdep-rtld-routines += dl-brk dl-sbrk -+sysdep-dl-routines += dl-static -+sysdep_routines += dl-static -+sysdep-rtld-routines += dl-brk dl-sbrk dl-static - - CPPFLAGS-lddlibc4 += -DNOT_IN_libc - endif -diff --git a/sysdeps/unix/sysv/linux/ia64/dl-static.c b/sysdeps/unix/sysv/linux/ia64/dl-static.c -deleted file mode 100644 -index 4efc077..0000000 ---- a/sysdeps/unix/sysv/linux/ia64/dl-static.c -+++ /dev/null -@@ -1,69 +0,0 @@ --/* Variable initialization. IA-64 version. -- Copyright (C) 2001, 2002, 2003, 2004 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, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#include <ldsodefs.h> -- --#ifdef SHARED -- --void --_dl_var_init (void *array[]) --{ -- /* It has to match "variables" below. */ -- enum -- { -- DL_PAGESIZE = 0, -- DL_CLKTCK -- }; -- -- GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]); -- GLRO(dl_clktck) = *((int *) array[DL_CLKTCK]); --} -- --#else --#include <bits/libc-lock.h> -- --__libc_lock_define_initialized_recursive (static, _dl_static_lock) -- --static void *variables[] = --{ -- &GLRO(dl_pagesize), -- &GLRO(dl_clktck) --}; -- --void --_dl_static_init (struct link_map *map) --{ -- const ElfW(Sym) *ref = NULL; -- lookup_t loadbase; -- void (*f) (void *[]); -- -- __libc_lock_lock_recursive (_dl_static_lock); -- -- loadbase = _dl_lookup_symbol_x ("_dl_var_init", map, &ref, -- map->l_local_scope, NULL, 0, 1, NULL); -- if (ref != NULL) -- { -- f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref); -- f (variables); -- } -- -- __libc_lock_unlock_recursive (_dl_static_lock); --} -- --#endif -diff --git a/sysdeps/unix/sysv/linux/dl-static.c b/sysdeps/unix/sysv/linux/dl-static.c -new file mode 100644 -index 0000000..fa70811 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/dl-static.c -@@ -0,0 +1,69 @@ -+/* Variable initialization. -+ Copyright (C) 2001, 2002, 2003, 2004, 2010 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, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include <ldsodefs.h> -+ -+#ifdef SHARED -+ -+void -+_dl_var_init (void *array[]) -+{ -+ /* It has to match "variables" below. */ -+ enum -+ { -+ DL_PAGESIZE = 0, -+ DL_CLKTCK -+ }; -+ -+ GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]); -+ GLRO(dl_clktck) = *((int *) array[DL_CLKTCK]); -+} -+ -+#else -+#include <bits/libc-lock.h> -+ -+__libc_lock_define_initialized_recursive (static, _dl_static_lock) -+ -+static void *variables[] = -+{ -+ &GLRO(dl_pagesize), -+ &GLRO(dl_clktck) -+}; -+ -+void -+_dl_static_init (struct link_map *map) -+{ -+ const ElfW(Sym) *ref = NULL; -+ lookup_t loadbase; -+ void (*f) (void *[]); -+ -+ __libc_lock_lock_recursive (_dl_static_lock); -+ -+ loadbase = _dl_lookup_symbol_x ("_dl_var_init", map, &ref, -+ map->l_local_scope, NULL, 0, 1, NULL); -+ if (ref != NULL) -+ { -+ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref); -+ f (variables); -+ } -+ -+ __libc_lock_unlock_recursive (_dl_static_lock); -+} -+ -+#endif -diff --git a/sysdeps/unix/sysv/linux/ia64/ldsodefs.h b/sysdeps/unix/sysv/linux/ia64/ldsodefs.h -deleted file mode 100644 -index 31af624..0000000 ---- a/sysdeps/unix/sysv/linux/ia64/ldsodefs.h -+++ /dev/null -@@ -1,33 +0,0 @@ --/* Run-time dynamic linker data structures for loaded ELF shared objects. IA64. -- Copyright (C) 2001 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, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#ifndef _LDSODEFS_H -- --/* Get the real definitions. */ --#include_next <ldsodefs.h> -- --/* Now define our stuff. */ -- --/* We need special support to initialize DSO loaded for statically linked -- binaries. */ --extern void _dl_static_init (struct link_map *map); --#undef DL_STATIC_INIT --#define DL_STATIC_INIT(map) _dl_static_init (map) -- --#endif /* ldsodefs.h */ -diff --git a/sysdeps/unix/sysv/linux/ldsodefs.h b/sysdeps/unix/sysv/linux/ldsodefs.h -index 5d5b1b4..ecb5d4f 100644 ---- a/sysdeps/unix/sysv/linux/ldsodefs.h -+++ b/sysdeps/unix/sysv/linux/ldsodefs.h -@@ -36,6 +36,12 @@ extern void _dl_aux_init (ElfW(auxv_t) *av) internal_function; - /* Initialization which is normally done by the dynamic linker. */ - extern void _dl_non_dynamic_init (void) internal_function; - -+/* We need special support to initialize DSO loaded for statically linked -+ binaries. */ -+extern void _dl_static_init (struct link_map *map); -+#undef DL_STATIC_INIT -+#define DL_STATIC_INIT(map) _dl_static_init (map) -+ - /* We can assume that the kernel always provides the AT_UID, AT_EUID, - AT_GID, and AT_EGID values in the auxiliary vector from 2.4.0 or so on. */ - #if __ASSUME_AT_XID -diff --git a/sysdeps/unix/sysv/linux/ia64/getpagesize.c b/sysdeps/unix/sysv/linux/ia64/getpagesize.c -deleted file mode 100644 -index 1155dfd..0000000 ---- a/sysdeps/unix/sysv/linux/ia64/getpagesize.c -+++ /dev/null -@@ -1,39 +0,0 @@ --/* Copyright (C) 1999, 2000, 2001, 2002, 2004 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, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#include <assert.h> --#include <unistd.h> --#include <sys/param.h> -- --#include <ldsodefs.h> --#include <sysdep.h> --#include <sys/syscall.h> -- --/* Return the system page size. The return value will depend on how -- the kernel is configured. A program must use this call to -- determine the page size to ensure proper alignment for calls such -- as mmap and friends. --davidm 99/11/30 */ -- --int --__getpagesize () --{ -- assert (GLRO(dl_pagesize) != 0); -- return GLRO(dl_pagesize); --} --libc_hidden_def (__getpagesize) --weak_alias (__getpagesize, getpagesize) _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git