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

Reply via email to