summaryrefslogtreecommitdiff
path: root/glibc
diff options
context:
space:
mode:
authorFredrik Rinnestam <fredrik@crux.nu>2016-06-12 16:44:44 +0200
committerFredrik Rinnestam <fredrik@crux.nu>2016-06-12 16:44:44 +0200
commit9373cce37f95662c13ab87ab59140f64470fa925 (patch)
tree8bfe8a81b515351af9b72c9d021a1c728fe8dab2 /glibc
parent4cd9051c3ac75d830a3c8b7ad5afc136b4a4997c (diff)
downloadcore-9373cce37f95662c13ab87ab59140f64470fa925.tar.gz
core-9373cce37f95662c13ab87ab59140f64470fa925.tar.xz
glibc: updated to 2.23
Diffstat (limited to 'glibc')
-rw-r--r--glibc/.footprint88
-rw-r--r--glibc/.md5sum8
-rw-r--r--glibc/Pkgfile12
-rw-r--r--glibc/iconv-gconv_trans.c.patch192
4 files changed, 238 insertions, 62 deletions
diff --git a/glibc/.footprint b/glibc/.footprint
index 66f9701c..f9e0210c 100644
--- a/glibc/.footprint
+++ b/glibc/.footprint
@@ -10,53 +10,53 @@ lrwxrwxrwx root/root etc/localtime -> ../usr/share/zoneinfo/UTC
-rw-r--r-- root/root etc/resolv.conf
-rw-r--r-- root/root etc/rpc
drwxr-xr-x root/root lib/
--rwxr-xr-x root/root lib/ld-2.22.so
-lrwxrwxrwx root/root lib/ld-linux-x86-64.so.2 -> ld-2.22.so
--rwxr-xr-x root/root lib/libBrokenLocale-2.22.so
-lrwxrwxrwx root/root lib/libBrokenLocale.so.1 -> libBrokenLocale-2.22.so
+-rwxr-xr-x root/root lib/ld-2.23.so
+lrwxrwxrwx root/root lib/ld-linux-x86-64.so.2 -> ld-2.23.so
+-rwxr-xr-x root/root lib/libBrokenLocale-2.23.so
+lrwxrwxrwx root/root lib/libBrokenLocale.so.1 -> libBrokenLocale-2.23.so
-rwxr-xr-x root/root lib/libSegFault.so
--rwxr-xr-x root/root lib/libanl-2.22.so
-lrwxrwxrwx root/root lib/libanl.so.1 -> libanl-2.22.so
--rwxr-xr-x root/root lib/libc-2.22.so
-lrwxrwxrwx root/root lib/libc.so.6 -> libc-2.22.so
--rwxr-xr-x root/root lib/libcidn-2.22.so
-lrwxrwxrwx root/root lib/libcidn.so.1 -> libcidn-2.22.so
--rwxr-xr-x root/root lib/libcrypt-2.22.so
-lrwxrwxrwx root/root lib/libcrypt.so.1 -> libcrypt-2.22.so
--rwxr-xr-x root/root lib/libdl-2.22.so
-lrwxrwxrwx root/root lib/libdl.so.2 -> libdl-2.22.so
--rwxr-xr-x root/root lib/libm-2.22.so
-lrwxrwxrwx root/root lib/libm.so.6 -> libm-2.22.so
+-rwxr-xr-x root/root lib/libanl-2.23.so
+lrwxrwxrwx root/root lib/libanl.so.1 -> libanl-2.23.so
+-rwxr-xr-x root/root lib/libc-2.23.so
+lrwxrwxrwx root/root lib/libc.so.6 -> libc-2.23.so
+-rwxr-xr-x root/root lib/libcidn-2.23.so
+lrwxrwxrwx root/root lib/libcidn.so.1 -> libcidn-2.23.so
+-rwxr-xr-x root/root lib/libcrypt-2.23.so
+lrwxrwxrwx root/root lib/libcrypt.so.1 -> libcrypt-2.23.so
+-rwxr-xr-x root/root lib/libdl-2.23.so
+lrwxrwxrwx root/root lib/libdl.so.2 -> libdl-2.23.so
+-rwxr-xr-x root/root lib/libm-2.23.so
+lrwxrwxrwx root/root lib/libm.so.6 -> libm-2.23.so
-rwxr-xr-x root/root lib/libmemusage.so
--rwxr-xr-x root/root lib/libmvec-2.22.so
-lrwxrwxrwx root/root lib/libmvec.so.1 -> libmvec-2.22.so
--rwxr-xr-x root/root lib/libnsl-2.22.so
-lrwxrwxrwx root/root lib/libnsl.so.1 -> libnsl-2.22.so
--rwxr-xr-x root/root lib/libnss_compat-2.22.so
-lrwxrwxrwx root/root lib/libnss_compat.so.2 -> libnss_compat-2.22.so
--rwxr-xr-x root/root lib/libnss_db-2.22.so
-lrwxrwxrwx root/root lib/libnss_db.so.2 -> libnss_db-2.22.so
--rwxr-xr-x root/root lib/libnss_dns-2.22.so
-lrwxrwxrwx root/root lib/libnss_dns.so.2 -> libnss_dns-2.22.so
--rwxr-xr-x root/root lib/libnss_files-2.22.so
-lrwxrwxrwx root/root lib/libnss_files.so.2 -> libnss_files-2.22.so
--rwxr-xr-x root/root lib/libnss_hesiod-2.22.so
-lrwxrwxrwx root/root lib/libnss_hesiod.so.2 -> libnss_hesiod-2.22.so
--rwxr-xr-x root/root lib/libnss_nis-2.22.so
-lrwxrwxrwx root/root lib/libnss_nis.so.2 -> libnss_nis-2.22.so
--rwxr-xr-x root/root lib/libnss_nisplus-2.22.so
-lrwxrwxrwx root/root lib/libnss_nisplus.so.2 -> libnss_nisplus-2.22.so
+-rwxr-xr-x root/root lib/libmvec-2.23.so
+lrwxrwxrwx root/root lib/libmvec.so.1 -> libmvec-2.23.so
+-rwxr-xr-x root/root lib/libnsl-2.23.so
+lrwxrwxrwx root/root lib/libnsl.so.1 -> libnsl-2.23.so
+-rwxr-xr-x root/root lib/libnss_compat-2.23.so
+lrwxrwxrwx root/root lib/libnss_compat.so.2 -> libnss_compat-2.23.so
+-rwxr-xr-x root/root lib/libnss_db-2.23.so
+lrwxrwxrwx root/root lib/libnss_db.so.2 -> libnss_db-2.23.so
+-rwxr-xr-x root/root lib/libnss_dns-2.23.so
+lrwxrwxrwx root/root lib/libnss_dns.so.2 -> libnss_dns-2.23.so
+-rwxr-xr-x root/root lib/libnss_files-2.23.so
+lrwxrwxrwx root/root lib/libnss_files.so.2 -> libnss_files-2.23.so
+-rwxr-xr-x root/root lib/libnss_hesiod-2.23.so
+lrwxrwxrwx root/root lib/libnss_hesiod.so.2 -> libnss_hesiod-2.23.so
+-rwxr-xr-x root/root lib/libnss_nis-2.23.so
+lrwxrwxrwx root/root lib/libnss_nis.so.2 -> libnss_nis-2.23.so
+-rwxr-xr-x root/root lib/libnss_nisplus-2.23.so
+lrwxrwxrwx root/root lib/libnss_nisplus.so.2 -> libnss_nisplus-2.23.so
-rwxr-xr-x root/root lib/libpcprofile.so
--rwxr-xr-x root/root lib/libpthread-2.22.so
-lrwxrwxrwx root/root lib/libpthread.so.0 -> libpthread-2.22.so
--rwxr-xr-x root/root lib/libresolv-2.22.so
-lrwxrwxrwx root/root lib/libresolv.so.2 -> libresolv-2.22.so
--rwxr-xr-x root/root lib/librt-2.22.so
-lrwxrwxrwx root/root lib/librt.so.1 -> librt-2.22.so
+-rwxr-xr-x root/root lib/libpthread-2.23.so
+lrwxrwxrwx root/root lib/libpthread.so.0 -> libpthread-2.23.so
+-rwxr-xr-x root/root lib/libresolv-2.23.so
+lrwxrwxrwx root/root lib/libresolv.so.2 -> libresolv-2.23.so
+-rwxr-xr-x root/root lib/librt-2.23.so
+lrwxrwxrwx root/root lib/librt.so.1 -> librt-2.23.so
-rwxr-xr-x root/root lib/libthread_db-1.0.so
lrwxrwxrwx root/root lib/libthread_db.so.1 -> libthread_db-1.0.so
--rwxr-xr-x root/root lib/libutil-2.22.so
-lrwxrwxrwx root/root lib/libutil.so.1 -> libutil-2.22.so
+-rwxr-xr-x root/root lib/libutil-2.23.so
+lrwxrwxrwx root/root lib/libutil.so.1 -> libutil-2.23.so
drwxr-xr-x root/root sbin/
-rwxr-xr-x root/root sbin/ldconfig
-rwxr-xr-x root/root sbin/sln
@@ -226,7 +226,6 @@ drwxr-xr-x root/root usr/include/bits/
-rw-r--r-- root/root usr/include/bits/ioctls.h
-rw-r--r-- root/root usr/include/bits/ipc.h
-rw-r--r-- root/root usr/include/bits/ipctypes.h
--rw-r--r-- root/root usr/include/bits/libc-lock.h
-rw-r--r-- root/root usr/include/bits/libio-ldbl.h
-rw-r--r-- root/root usr/include/bits/libm-simd-decl-stubs.h
-rw-r--r-- root/root usr/include/bits/link.h
@@ -279,7 +278,6 @@ drwxr-xr-x root/root usr/include/bits/
-rw-r--r-- root/root usr/include/bits/statfs.h
-rw-r--r-- root/root usr/include/bits/statvfs.h
-rw-r--r-- root/root usr/include/bits/stdio-ldbl.h
--rw-r--r-- root/root usr/include/bits/stdio-lock.h
-rw-r--r-- root/root usr/include/bits/stdio.h
-rw-r--r-- root/root usr/include/bits/stdio2.h
-rw-r--r-- root/root usr/include/bits/stdio_lim.h
@@ -1218,7 +1216,6 @@ drwxr-xr-x root/root usr/include/sys/
-rw-r--r-- root/root usr/include/sys/ioctl.h
-rw-r--r-- root/root usr/include/sys/ipc.h
-rw-r--r-- root/root usr/include/sys/kd.h
--rw-r--r-- root/root usr/include/sys/kdaemon.h
-rw-r--r-- root/root usr/include/sys/klog.h
-rw-r--r-- root/root usr/include/sys/mman.h
-rw-r--r-- root/root usr/include/sys/mount.h
@@ -1602,6 +1599,7 @@ lrwxrwxrwx root/root usr/lib/libdl.so -> ../../lib/libdl.so.2
-rw-r--r-- root/root usr/lib/libmcheck.a
-rw-r--r-- root/root usr/lib/libmvec.a
lrwxrwxrwx root/root usr/lib/libmvec.so -> ../../lib/libmvec.so.1
+-rw-r--r-- root/root usr/lib/libmvec_nonshared.a
-rw-r--r-- root/root usr/lib/libnsl.a
lrwxrwxrwx root/root usr/lib/libnsl.so -> ../../lib/libnsl.so.1
lrwxrwxrwx root/root usr/lib/libnss_compat.so -> ../../lib/libnss_compat.so.2
diff --git a/glibc/.md5sum b/glibc/.md5sum
index eb5c5be7..f2d939be 100644
--- a/glibc/.md5sum
+++ b/glibc/.md5sum
@@ -1,11 +1,5 @@
-49019f98ab824254ebeca5aba2f22ab1 CVE-2015-7547.patch
-3972ff7405c89be7f5694bdc28fbd798 CVE-2015-8776.patch
-c0e4a708857a0a50b9a3d1a5cc315763 CVE-2015-8777.patch
-5cd75bfc0789559553b9c708c6b986ac CVE-2015-8778.patch
-9623a770f7a9781272b8f30761cbe256 CVE-2015-8779.patch
aaad345ff18993dafe3e44ac947f7157 glibc-2.20-multilib-dirs.patch
-e51e02bf552a0a1fbbdc948fb2f5e83c glibc-2.22.tar.xz
-a3089fb4572929628052c4509ac85a93 glibc-rh1252570.patch
+456995968f3acadbed39f5eba31678df glibc-2.23.tar.xz
96156bec8e05de67384dc93e72bdc313 host.conf
fbbc215a9b15ba4846f326cc88108057 hosts
87bb2a93d7887505a39fd65a2ee86b8e kernel-headers-4.1.tar.xz
diff --git a/glibc/Pkgfile b/glibc/Pkgfile
index dcdf11b9..6d9cef92 100644
--- a/glibc/Pkgfile
+++ b/glibc/Pkgfile
@@ -3,13 +3,11 @@
# Maintainer: CRUX System Team, core-ports at crux dot nu
name=glibc
-version=2.22
-release=3
+version=2.23
+release=1
source=(http://ftp.gnu.org/gnu/glibc/glibc-$version.tar.xz \
http://crux.nu/files/distfiles/kernel-headers-4.1.tar.xz \
$name-2.20-multilib-dirs.patch \
- CVE-2015-8779.patch CVE-2015-8778.patch CVE-2015-8777.patch \
- CVE-2015-8776.patch CVE-2015-7547.patch glibc-rh1252570.patch \
hosts resolv.conf nsswitch.conf host.conf ld.so.conf)
build() {
@@ -19,12 +17,6 @@ build() {
chown root:root $PKG/usr
patch -p1 -d $SRC/$name-$version -i $SRC/$name-2.20-multilib-dirs.patch
- patch -p1 -d $SRC/$name-$version -i $SRC/CVE-2015-8779.patch
- patch -p1 -d $SRC/$name-$version -i $SRC/CVE-2015-8778.patch
- patch -p1 -d $SRC/$name-$version -i $SRC/CVE-2015-8777.patch
- patch -p1 -d $SRC/$name-$version -i $SRC/CVE-2015-8776.patch
- patch -p1 -d $SRC/$name-$version -i $SRC/glibc-rh1252570.patch
- patch -p1 -d $SRC/$name-$version -i $SRC/CVE-2015-7547.patch
mkdir $SRC/build
cd $SRC/build
diff --git a/glibc/iconv-gconv_trans.c.patch b/glibc/iconv-gconv_trans.c.patch
new file mode 100644
index 00000000..8aec86f9
--- /dev/null
+++ b/glibc/iconv-gconv_trans.c.patch
@@ -0,0 +1,192 @@
+X-Git-Url: https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=blobdiff_plain;f=iconv%2Fgconv_trans.c;h=e0835fc66684e63964b1376a0c730a70225f63f4;hp=1e25854ccfa84e4f612320f61e6cafa2f955a7d9;hb=a1a6a401ab0a3c9f15fb7eaebbdcee24192254e8;hpb=e4e7cfd287686d26fce2218ed5b2d383db5e338a
+
+diff --git a/iconv/gconv_trans.c b/iconv/gconv_trans.c
+index 1e25854..e0835fc 100644
+--- a/iconv/gconv_trans.c
++++ b/iconv/gconv_trans.c
+@@ -238,181 +238,12 @@ __gconv_transliterate (struct __gconv_step *step,
+ return __GCONV_ILLEGAL_INPUT;
+ }
+
+-
+-/* Structure to represent results of found (or not) transliteration
+- modules. */
+-struct known_trans
+-{
+- /* This structure must remain the first member. */
+- struct trans_struct info;
+-
+- char *fname;
+- void *handle;
+- int open_count;
+-};
+-
+-
+-/* Tree with results of previous calls to __gconv_translit_find. */
+-static void *search_tree;
+-
+-/* We modify global data. */
+-__libc_lock_define_initialized (static, lock);
+-
+-
+-/* Compare two transliteration entries. */
+-static int
+-trans_compare (const void *p1, const void *p2)
+-{
+- const struct known_trans *s1 = (const struct known_trans *) p1;
+- const struct known_trans *s2 = (const struct known_trans *) p2;
+-
+- return strcmp (s1->info.name, s2->info.name);
+-}
+-
+-
+-/* Open (maybe reopen) the module named in the struct. Get the function
+- and data structure pointers we need. */
+-static int
+-open_translit (struct known_trans *trans)
+-{
+- __gconv_trans_query_fct queryfct;
+-
+- trans->handle = __libc_dlopen (trans->fname);
+- if (trans->handle == NULL)
+- /* Not available. */
+- return 1;
+-
+- /* Find the required symbol. */
+- queryfct = __libc_dlsym (trans->handle, "gconv_trans_context");
+- if (queryfct == NULL)
+- {
+- /* We cannot live with that. */
+- close_and_out:
+- __libc_dlclose (trans->handle);
+- trans->handle = NULL;
+- return 1;
+- }
+-
+- /* Get the context. */
+- if (queryfct (trans->info.name, &trans->info.csnames, &trans->info.ncsnames)
+- != 0)
+- goto close_and_out;
+-
+- /* Of course we also have to have the actual function. */
+- trans->info.trans_fct = __libc_dlsym (trans->handle, "gconv_trans");
+- if (trans->info.trans_fct == NULL)
+- goto close_and_out;
+-
+- /* Now the optional functions. */
+- trans->info.trans_init_fct =
+- __libc_dlsym (trans->handle, "gconv_trans_init");
+- trans->info.trans_context_fct =
+- __libc_dlsym (trans->handle, "gconv_trans_context");
+- trans->info.trans_end_fct =
+- __libc_dlsym (trans->handle, "gconv_trans_end");
+-
+- trans->open_count = 1;
+-
+- return 0;
+-}
+-
+-
+ int
+ internal_function
+ __gconv_translit_find (struct trans_struct *trans)
+ {
+- struct known_trans **found;
+- const struct path_elem *runp;
+- int res = 1;
+-
+- /* We have to have a name. */
+- assert (trans->name != NULL);
+-
+- /* Acquire the lock. */
+- __libc_lock_lock (lock);
+-
+- /* See whether we know this module already. */
+- found = __tfind (trans, &search_tree, trans_compare);
+- if (found != NULL)
+- {
+- /* Is this module available? */
+- if ((*found)->handle != NULL)
+- {
+- /* Maybe we have to reopen the file. */
+- if ((*found)->handle != (void *) -1)
+- /* The object is not unloaded. */
+- res = 0;
+- else if (open_translit (*found) == 0)
+- {
+- /* Copy the data. */
+- *trans = (*found)->info;
+- (*found)->open_count++;
+- res = 0;
+- }
+- }
+- }
+- else
+- {
+- size_t name_len = strlen (trans->name) + 1;
+- int need_so = 0;
+- struct known_trans *newp;
+-
+- /* We have to continue looking for the module. */
+- if (__gconv_path_elem == NULL)
+- __gconv_get_path ();
+-
+- /* See whether we have to append .so. */
+- if (name_len <= 4 || memcmp (&trans->name[name_len - 4], ".so", 3) != 0)
+- need_so = 1;
+-
+- /* Create a new entry. */
+- newp = (struct known_trans *) malloc (sizeof (struct known_trans)
+- + (__gconv_max_path_elem_len
+- + name_len + 3)
+- + name_len);
+- if (newp != NULL)
+- {
+- char *cp;
+-
+- /* Clear the struct. */
+- memset (newp, '\0', sizeof (struct known_trans));
+-
+- /* Store a copy of the module name. */
+- newp->info.name = cp = (char *) (newp + 1);
+- cp = __mempcpy (cp, trans->name, name_len);
+-
+- newp->fname = cp;
+-
+- /* Search in all the directories. */
+- for (runp = __gconv_path_elem; runp->name != NULL; ++runp)
+- {
+- cp = __mempcpy (__stpcpy ((char *) newp->fname, runp->name),
+- trans->name, name_len);
+- if (need_so)
+- memcpy (cp, ".so", sizeof (".so"));
+-
+- if (open_translit (newp) == 0)
+- {
+- /* We found a module. */
+- res = 0;
+- break;
+- }
+- }
+-
+- if (res)
+- newp->fname = NULL;
+-
+- /* In any case we'll add the entry to our search tree. */
+- if (__tsearch (newp, &search_tree, trans_compare) == NULL)
+- {
+- /* Yickes, this should not happen. Unload the object. */
+- res = 1;
+- /* XXX unload here. */
+- }
+- }
+- }
+-
+- __libc_lock_unlock (lock);
+-
+- return res;
++ /* Transliteration module loading has been removed because it never
++ worked as intended and suffered from a security vulnerability.
++ Consequently, this function always fails. */
++ return 1;
+ }

Generated by cgit