[arch-commits] Commit in glibc/trunk (PKGBUILD glibc-2.21-roundup.patch)
Allan McRae
allan at archlinux.org
Wed Apr 22 11:58:30 UTC 2015
Date: Wednesday, April 22, 2015 @ 13:58:30
Author: allan
Revision: 237898
upgpkg: glibc 2.21-3
upstream patch bump, fixes CVE-2015-1781
Modified:
glibc/trunk/PKGBUILD
glibc/trunk/glibc-2.21-roundup.patch
--------------------------+
PKGBUILD | 8 ++++----
glibc-2.21-roundup.patch | 41 ++++++++++++++++++++++++++++++++++-------
2 files changed, 38 insertions(+), 11 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2015-04-22 08:27:41 UTC (rev 237897)
+++ PKGBUILD 2015-04-22 11:58:30 UTC (rev 237898)
@@ -8,13 +8,13 @@
pkgname=glibc
pkgver=2.21
-pkgrel=2
+pkgrel=3
pkgdesc="GNU C Library"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/libc"
license=('GPL' 'LGPL')
groups=('base')
-depends=('linux-api-headers>=3.16' 'tzdata' 'filesystem>=2013.01')
+depends=('linux-api-headers>=3.18' 'tzdata' 'filesystem')
makedepends=('gcc>=4.9')
backup=(etc/gai.conf
etc/locale.gen
@@ -27,7 +27,7 @@
locale-gen)
md5sums=('9cb398828e8f84f57d1f7d5588cf40cd'
'SKIP'
- 'bf9d96b11c76b113606aae102da63d9d'
+ 'feb826d5f4965e9892ee6e851fec43a9'
'07ac979b6ab5eeb778d55f041529d623'
'476e9113489f93b348b21e144b6a8fcf')
validpgpkeys=('F37CDAB708E65EA183FD1AF625EF0A436C2A4AFF') # Carlos O'Donell
@@ -35,7 +35,7 @@
prepare() {
cd ${srcdir}/glibc-${pkgver}
- # glibc-2.21..75adf430
+ # glibc-2.21..01b07c70
patch -p1 -i $srcdir/glibc-2.21-roundup.patch
mkdir ${srcdir}/glibc-build
Modified: glibc-2.21-roundup.patch
===================================================================
--- glibc-2.21-roundup.patch 2015-04-22 08:27:41 UTC (rev 237897)
+++ glibc-2.21-roundup.patch 2015-04-22 11:58:30 UTC (rev 237898)
@@ -1,8 +1,14 @@
diff --git a/ChangeLog b/ChangeLog
-index dc1ed1b..45579de 100644
+index dc1ed1b..26feb07 100644
--- a/ChangeLog
+++ b/ChangeLog
-@@ -1,3 +1,9 @@
+@@ -1,3 +1,15 @@
++2015-04-21 Arjun Shankar <arjun.is at lostca.se>
++
++ [BZ #18287]
++ * resolv/nss_dns/dns-host.c (getanswer_r): Adjust buffer length
++ based on padding. (CVE-2015-1781)
++
+2015-02-10 Evangelos Foutras <evangelos at foutrelis.com>
+
+ [BZ #17949]
@@ -12,7 +18,7 @@
2015-02-06 Carlos O'Donell <carlos at systemhalted.org>
* version.h (RELEASE): Set to "stable".
-@@ -7,6 +13,7 @@
+@@ -7,6 +19,7 @@
* sysdeps/unix/sysv/linux/hppa/pthread.h: Sync with pthread.h.
2015-02-05 Paul Pluzhnikov <ppluzhnikov at google.com>
@@ -21,10 +27,10 @@
[BZ #16618]
* stdio-common/tst-sscanf.c (main): Test for buffer overflow.
diff --git a/NEWS b/NEWS
-index 617cdbb..ff79f0d 100644
+index 617cdbb..c9f6b58 100644
--- a/NEWS
+++ b/NEWS
-@@ -5,6 +5,12 @@ See the end for copying conditions.
+@@ -5,6 +5,19 @@ See the end for copying conditions.
Please send GNU C library bug reports via <http://sourceware.org/bugzilla/>
using `glibc' in the "product" field.
@@ -32,12 +38,19 @@
+
+* The following bugs are resolved with this release:
+
-+ 17949.
++ 17949, 18287.
++
++* A buffer overflow in gethostbyname_r and related functions performing DNS
++ requests has been fixed. If the NSS functions were called with a
++ misaligned buffer, the buffer length change due to pointer alignment was
++ not taken into account. This could result in application crashes or,
++ potentially arbitrary code execution, using crafted, but syntactically
++ valid DNS responses. (CVE-2015-1781)
+
Version 2.21
* The following bugs are resolved with this release:
-@@ -21,10 +27,11 @@ Version 2.21
+@@ -21,10 +34,11 @@ Version 2.21
17801, 17803, 17806, 17834, 17844, 17848, 17868, 17869, 17870, 17885,
17892.
@@ -53,6 +66,20 @@
* A new semaphore algorithm has been implemented in generic C code for all
machines. Previous custom assembly implementations of semaphore were
+diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
+index f715ab0..40069a7 100644
+--- a/resolv/nss_dns/dns-host.c
++++ b/resolv/nss_dns/dns-host.c
+@@ -615,7 +615,8 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype,
+ int have_to_map = 0;
+ uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct host_data);
+ buffer += pad;
+- if (__glibc_unlikely (buflen < sizeof (struct host_data) + pad))
++ buflen = buflen > pad ? buflen - pad : 0;
++ if (__glibc_unlikely (buflen < sizeof (struct host_data)))
+ {
+ /* The buffer is too small. */
+ too_small:
diff --git a/sysdeps/i386/i686/multiarch/mempcpy_chk.S b/sysdeps/i386/i686/multiarch/mempcpy_chk.S
index 207b648..b6fa202 100644
--- a/sysdeps/i386/i686/multiarch/mempcpy_chk.S
More information about the arch-commits
mailing list