glibc: remove version 2.21
PATCH v2 1/1 glibc: remove version 2.21
Mask out glibc for sparc as well since it's no longer available.
---
v2: mask out sparc glibc support
package/glibc/2.21/0001-fix-CVE-2015-7547.patch | 236 ------------------------ package/glibc/2.21/0002-fix-CVE-2015-1781.patch | 32 ---- package/glibc/2.21/0003-fix-CVE-2014-8121.patch | 176 ------------------ package/glibc/Config.in | 4 - package/glibc/glibc.hash | 1 - toolchain/toolchain-buildroot/Config.in | 5 +- 6 files changed, 2 insertions(+), 452 deletions(-) delete mode 100644 package/glibc/2.21/0001-fix-CVE-2015-7547.patch delete mode 100644 package/glibc/2.21/0002-fix-CVE-2015-1781.patch delete mode 100644 package/glibc/2.21/0003-fix-CVE-2014-8121.patch
package/glibc/2.21/0001-fix-CVE-2015-7547.patch deleted +0 -236
@@ -1,236 +0,0 @@ -Fetched from gentoo glibc patchball -Original patch filename: 10_all_glibc-CVE-2015-7547.patch -Based on: https://sourceware.org/ml/libc-alpha/2016-02/msg00416.html - -Fixes: -CVE-2015-7547 - glibc getaddrinfo stack-based buffer overflow. - -Signed-off-by: Gustavo Zacarias <[email protected]> - ---- a/resolv/nss_dns/dns-host.c -+++ b/resolv/nss_dns/dns-host.c -@@ -1031,7 +1031,10 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, - int h_namelen = 0; - - if (ancount == 0) -- return NSS_STATUS_NOTFOUND; -+ { -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } - - while (ancount-- > 0 && cp < end_of_message && had_error == 0) - { -@@ -1208,7 +1211,14 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, - /* Special case here: if the resolver sent a result but it only - contains a CNAME while we are looking for a T_A or T_AAAA record, - we fail with NOTFOUND instead of TRYAGAIN. */ -- return canon == NULL ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND; -+ if (canon != NULL) -+ { -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } -+ -+ *h_errnop = NETDB_INTERNAL; -+ return NSS_STATUS_TRYAGAIN; - } - - -@@ -1242,8 +1252,15 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2, - &pat, &buffer, &buflen, - errnop, h_errnop, ttlp, - &first); -+ /* Use the second response status in some cases. */ - if (status != NSS_STATUS_SUCCESS && status2 != NSS_STATUS_NOTFOUND) - status = status2; -+ /* Do not return a truncated second response (unless it was -+ unavoidable e.g. unrecoverable TRYAGAIN). */ -+ if (status == NSS_STATUS_SUCCESS -+ && (status2 == NSS_STATUS_TRYAGAIN -+ && *errnop == ERANGE && *h_errnop != NO_RECOVERY)) -+ status = NSS_STATUS_TRYAGAIN; - } - - return status; ---- a/resolv/res_query.c -+++ b/resolv/res_query.c -@@ -396,6 +396,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - } -@@ -447,6 +448,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - -@@ -521,6 +523,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - if (saved_herrno != -1) ---- a/resolv/res_send.c -+++ b/resolv/res_send.c -@@ -639,11 +639,7 @@ send_vc(res_state statp, - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -- u_char *ans = *ansp; -- int orig_anssizp = *anssizp; -- // XXX REMOVE -- // int anssiz = *anssizp; -- HEADER *anhp = (HEADER *) ans; -+ HEADER *anhp = (HEADER *) *ansp; - struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns]; - int truncating, connreset, n; - /* On some architectures compiler might emit a warning indicating -@@ -767,35 +763,6 @@ send_vc(res_state statp, - assert (anscp != NULL || ansp2 == NULL); - thisresplenp = &resplen; - } else { -- if (*anssizp != MAXPACKET) { -- /* No buffer allocated for the first -- reply. We can try to use the rest -- of the user-provided buffer. */ --#if __GNUC_PREREQ (4, 7) -- DIAG_PUSH_NEEDS_COMMENT; -- DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized"); --#endif --#if _STRING_ARCH_unaligned -- *anssizp2 = orig_anssizp - resplen; -- *ansp2 = *ansp + resplen; --#else -- int aligned_resplen -- = ((resplen + __alignof__ (HEADER) - 1) -- & ~(__alignof__ (HEADER) - 1)); -- *anssizp2 = orig_anssizp - aligned_resplen; -- *ansp2 = *ansp + aligned_resplen; --#endif --#if __GNUC_PREREQ (4, 7) -- DIAG_POP_NEEDS_COMMENT; --#endif -- } else { -- /* The first reply did not fit into the -- user-provided buffer. Maybe the second -- answer will. */ -- *anssizp2 = orig_anssizp; -- *ansp2 = *ansp; -- } -- - thisanssizp = anssizp2; - thisansp = ansp2; - thisresplenp = resplen2; -@@ -804,10 +771,14 @@ send_vc(res_state statp, - anhp = (HEADER *) *thisansp; - - *thisresplenp = rlen; -- if (rlen > *thisanssizp) { -- /* Yes, we test ANSCP here. If we have two buffers -- both will be allocatable. */ -- if (__glibc_likely (anscp != NULL)) { -+ /* Is the answer buffer too small? */ -+ if (*thisanssizp < rlen) { -+ /* If the current buffer is not the the static -+ user-supplied buffer then we can reallocate -+ it. */ -+ if (thisansp != NULL && thisansp != ansp) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *newp = malloc (MAXPACKET); - if (newp == NULL) { - *terrno = ENOMEM; -@@ -957,8 +928,6 @@ send_dg(res_state statp, - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -- u_char *ans = *ansp; -- int orig_anssizp = *anssizp; - struct timespec now, timeout, finish; - struct pollfd pfd[1]; - int ptimeout; -@@ -1154,50 +1123,48 @@ send_dg(res_state statp, - assert (anscp != NULL || ansp2 == NULL); - thisresplenp = &resplen; - } else { -- if (*anssizp != MAXPACKET) { -- /* No buffer allocated for the first -- reply. We can try to use the rest -- of the user-provided buffer. */ --#if _STRING_ARCH_unaligned -- *anssizp2 = orig_anssizp - resplen; -- *ansp2 = *ansp + resplen; --#else -- int aligned_resplen -- = ((resplen + __alignof__ (HEADER) - 1) -- & ~(__alignof__ (HEADER) - 1)); -- *anssizp2 = orig_anssizp - aligned_resplen; -- *ansp2 = *ansp + aligned_resplen; --#endif -- } else { -- /* The first reply did not fit into the -- user-provided buffer. Maybe the second -- answer will. */ -- *anssizp2 = orig_anssizp; -- *ansp2 = *ansp; -- } -- - thisanssizp = anssizp2; - thisansp = ansp2; - thisresplenp = resplen2; - } - - if (*thisanssizp < MAXPACKET -- /* Yes, we test ANSCP here. If we have two buffers -- both will be allocatable. */ -- && anscp -+ /* If the current buffer is not the the static -+ user-supplied buffer then we can reallocate -+ it. */ -+ && (thisansp != NULL && thisansp != ansp) - #ifdef FIONREAD -+ /* Is the size too small? */ - && (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0 - || *thisanssizp < *thisresplenp) - #endif - ) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *newp = malloc (MAXPACKET); - if (newp != NULL) { -- *anssizp = MAXPACKET; -- *thisansp = ans = newp; -+ *thisanssizp = MAXPACKET; -+ *thisansp = newp; - if (thisansp == ansp2) - *ansp2_malloced = 1; - } - } -+ /* We could end up with truncation if anscp was NULL -+ (not allowed to change caller's buffer) and the -+ response buffer size is too small. This isn't a -+ reliable way to detect truncation because the ioctl -+ may be an inaccurate report of the UDP message size. -+ Therefore we use this only to issue debug output. -+ To do truncation accurately with UDP we need -+ MSG_TRUNC which is only available on Linux. We -+ can abstract out the Linux-specific feature in the -+ future to detect truncation. */ -+ if (__glibc_unlikely (*thisanssizp < *thisresplenp)) { -+ Dprint(statp->options & RES_DEBUG, -+ (stdout, ";; response may be truncated (UDP)\n") -+ ); -+ } -+ - HEADER *anhp = (HEADER *) *thisansp; - socklen_t fromlen = sizeof(struct sockaddr_in6); - assert (sizeof(from) <= fromlen);
package/glibc/2.21/0002-fix-CVE-2015-1781.patch deleted +0 -32
@@ -1,32 +0,0 @@ -From 10c6d2e3243cefdd22933d3706f53d9f913c6cab Mon Sep 17 00:00:00 2001 -From: Arjun Shankar <[email protected]> -Date: Tue, 21 Apr 2015 14:06:31 +0200 -Subject: [PATCH] CVE-2015-1781: resolv/nss_dns/dns-host.c buffer overflow - [BZ#18287] - -Fixes: -CVE-2015-1781 - buffer overflow in gethostbyname_r() and related -functions with misaligned buffer. - -Signed-off-by: Gustavo Zacarias <[email protected]> ---- - resolv/nss_dns/dns-host.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -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: --- -2.4.4 -
package/glibc/2.21/0003-fix-CVE-2014-8121.patch deleted +0 -176
176 lines not on this page · raw message
package/glibc/Config.in +0 -4
@@ -34,9 +34,6 @@ choice prompt "glibc version" default BR2_GLIBC_VERSION_2_22 -config BR2_GLIBC_VERSION_2_21 - bool "2.21" - config BR2_GLIBC_VERSION_2_22 bool "2.22" # No support for pthread barriers on < v9 ISA
@@ -55,6 +52,5 @@ config BR2_GLIBC_VERSION_STRING string default "2.18-svnr23787" if BR2_EGLIBC_VERSION_2_18 default "2.19-svnr25243" if BR2_EGLIBC_VERSION_2_19 - default "2.21" if BR2_GLIBC_VERSION_2_21 default "2.22" if BR2_GLIBC_VERSION_2_22 default "2.23" if BR2_GLIBC_VERSION_2_23
package/glibc/glibc.hash +0 -1
@@ -4,6 +4,5 @@ md5 b395b021422a027d89884992e91734fc eglibc-2.18-svnr23787.tar.bz2 sha1 224d9e655e8f0ad04ffde47b97a11c64e2255b56 eglibc-2.18-svnr23787.tar.bz2 md5 197836c2ba42fb146e971222647198dd eglibc-2.19-svnr25243.tar.bz2 sha1 8013c1935b46fd50d2d1fbfad3b0af362b75fb28 eglibc-2.19-svnr25243.tar.bz2 -sha256 aeeb362437965a5d3f40b151094ca79def04a115bd363fdd4a9a0c69482923b8 glibc-2.21.tar.xz sha256 eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948 glibc-2.22.tar.xz sha256 94efeb00e4603c8546209cefb3e1a50a5315c86fa9b078b6fad758e187ce13e9 glibc-2.23.tar.xz
toolchain/toolchain-buildroot/Config.in +2 -3
@@ -68,9 +68,8 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC BR2_aarch64_be || BR2_i386 || BR2_mips || \ BR2_mipsel || BR2_mips64 || BR2_mips64el|| \ BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \ - BR2_sh || BR2_sh64 || BR2_sparc || \ - BR2_sparc64 || BR2_x86_64 || BR2_microblaze || \ - BR2_nios2 + BR2_sh || BR2_sh64 || BR2_sparc64 || \ + BR2_x86_64 || BR2_microblaze || BR2_nios2 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS depends on !BR2_powerpc_SPE
Signature · 1 line
2.4.10
PATCH 1/1 glibc: remove version 2.21
Mask out glibc for sparc as well since it's no longer available.
--- package/glibc/2.21/0001-fix-CVE-2015-7547.patch | 236 ------------------------ package/glibc/2.21/0002-fix-CVE-2015-1781.patch | 32 ---- package/glibc/2.21/0003-fix-CVE-2014-8121.patch | 176 ------------------ package/glibc/Config.in | 4 - package/glibc/glibc.hash | 1 - toolchain/toolchain-buildroot/Config.in | 5 +- 6 files changed, 2 insertions(+), 452 deletions(-) delete mode 100644 package/glibc/2.21/0001-fix-CVE-2015-7547.patch delete mode 100644 package/glibc/2.21/0002-fix-CVE-2015-1781.patch delete mode 100644 package/glibc/2.21/0003-fix-CVE-2014-8121.patch
package/glibc/2.21/0001-fix-CVE-2015-7547.patch deleted +0 -236
@@ -1,236 +0,0 @@ -Fetched from gentoo glibc patchball -Original patch filename: 10_all_glibc-CVE-2015-7547.patch -Based on: https://sourceware.org/ml/libc-alpha/2016-02/msg00416.html - -Fixes: -CVE-2015-7547 - glibc getaddrinfo stack-based buffer overflow. - -Signed-off-by: Gustavo Zacarias <[email protected]> - ---- a/resolv/nss_dns/dns-host.c -+++ b/resolv/nss_dns/dns-host.c -@@ -1031,7 +1031,10 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, - int h_namelen = 0; - - if (ancount == 0) -- return NSS_STATUS_NOTFOUND; -+ { -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } - - while (ancount-- > 0 && cp < end_of_message && had_error == 0) - { -@@ -1208,7 +1211,14 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, - /* Special case here: if the resolver sent a result but it only - contains a CNAME while we are looking for a T_A or T_AAAA record, - we fail with NOTFOUND instead of TRYAGAIN. */ -- return canon == NULL ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND; -+ if (canon != NULL) -+ { -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } -+ -+ *h_errnop = NETDB_INTERNAL; -+ return NSS_STATUS_TRYAGAIN; - } - - -@@ -1242,8 +1252,15 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2, - &pat, &buffer, &buflen, - errnop, h_errnop, ttlp, - &first); -+ /* Use the second response status in some cases. */ - if (status != NSS_STATUS_SUCCESS && status2 != NSS_STATUS_NOTFOUND) - status = status2; -+ /* Do not return a truncated second response (unless it was -+ unavoidable e.g. unrecoverable TRYAGAIN). */ -+ if (status == NSS_STATUS_SUCCESS -+ && (status2 == NSS_STATUS_TRYAGAIN -+ && *errnop == ERANGE && *h_errnop != NO_RECOVERY)) -+ status = NSS_STATUS_TRYAGAIN; - } - - return status; ---- a/resolv/res_query.c -+++ b/resolv/res_query.c -@@ -396,6 +396,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - } -@@ -447,6 +448,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - -@@ -521,6 +523,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - if (saved_herrno != -1) ---- a/resolv/res_send.c -+++ b/resolv/res_send.c -@@ -639,11 +639,7 @@ send_vc(res_state statp, - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -- u_char *ans = *ansp; -- int orig_anssizp = *anssizp; -- // XXX REMOVE -- // int anssiz = *anssizp; -- HEADER *anhp = (HEADER *) ans; -+ HEADER *anhp = (HEADER *) *ansp; - struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns]; - int truncating, connreset, n; - /* On some architectures compiler might emit a warning indicating -@@ -767,35 +763,6 @@ send_vc(res_state statp, - assert (anscp != NULL || ansp2 == NULL); - thisresplenp = &resplen; - } else { -- if (*anssizp != MAXPACKET) { -- /* No buffer allocated for the first -- reply. We can try to use the rest -- of the user-provided buffer. */ --#if __GNUC_PREREQ (4, 7) -- DIAG_PUSH_NEEDS_COMMENT; -- DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized"); --#endif --#if _STRING_ARCH_unaligned -- *anssizp2 = orig_anssizp - resplen; -- *ansp2 = *ansp + resplen; --#else -- int aligned_resplen -- = ((resplen + __alignof__ (HEADER) - 1) -- & ~(__alignof__ (HEADER) - 1)); -- *anssizp2 = orig_anssizp - aligned_resplen; -- *ansp2 = *ansp + aligned_resplen; --#endif --#if __GNUC_PREREQ (4, 7) -- DIAG_POP_NEEDS_COMMENT; --#endif -- } else { -- /* The first reply did not fit into the -- user-provided buffer. Maybe the second -- answer will. */ -- *anssizp2 = orig_anssizp; -- *ansp2 = *ansp; -- } -- - thisanssizp = anssizp2; - thisansp = ansp2; - thisresplenp = resplen2; -@@ -804,10 +771,14 @@ send_vc(res_state statp, - anhp = (HEADER *) *thisansp; - - *thisresplenp = rlen; -- if (rlen > *thisanssizp) { -- /* Yes, we test ANSCP here. If we have two buffers -- both will be allocatable. */ -- if (__glibc_likely (anscp != NULL)) { -+ /* Is the answer buffer too small? */ -+ if (*thisanssizp < rlen) { -+ /* If the current buffer is not the the static -+ user-supplied buffer then we can reallocate -+ it. */ -+ if (thisansp != NULL && thisansp != ansp) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *newp = malloc (MAXPACKET); - if (newp == NULL) { - *terrno = ENOMEM; -@@ -957,8 +928,6 @@ send_dg(res_state statp, - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -- u_char *ans = *ansp; -- int orig_anssizp = *anssizp; - struct timespec now, timeout, finish; - struct pollfd pfd[1]; - int ptimeout; -@@ -1154,50 +1123,48 @@ send_dg(res_state statp, - assert (anscp != NULL || ansp2 == NULL); - thisresplenp = &resplen; - } else { -- if (*anssizp != MAXPACKET) { -- /* No buffer allocated for the first -- reply. We can try to use the rest -- of the user-provided buffer. */ --#if _STRING_ARCH_unaligned -- *anssizp2 = orig_anssizp - resplen; -- *ansp2 = *ansp + resplen; --#else -- int aligned_resplen -- = ((resplen + __alignof__ (HEADER) - 1) -- & ~(__alignof__ (HEADER) - 1)); -- *anssizp2 = orig_anssizp - aligned_resplen; -- *ansp2 = *ansp + aligned_resplen; --#endif -- } else { -- /* The first reply did not fit into the -- user-provided buffer. Maybe the second -- answer will. */ -- *anssizp2 = orig_anssizp; -- *ansp2 = *ansp; -- } -- - thisanssizp = anssizp2; - thisansp = ansp2; - thisresplenp = resplen2; - } - - if (*thisanssizp < MAXPACKET -- /* Yes, we test ANSCP here. If we have two buffers -- both will be allocatable. */ -- && anscp -+ /* If the current buffer is not the the static -+ user-supplied buffer then we can reallocate -+ it. */ -+ && (thisansp != NULL && thisansp != ansp) - #ifdef FIONREAD -+ /* Is the size too small? */ - && (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0 - || *thisanssizp < *thisresplenp) - #endif - ) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *newp = malloc (MAXPACKET); - if (newp != NULL) { -- *anssizp = MAXPACKET; -- *thisansp = ans = newp; -+ *thisanssizp = MAXPACKET; -+ *thisansp = newp; - if (thisansp == ansp2) - *ansp2_malloced = 1; - } - } -+ /* We could end up with truncation if anscp was NULL -+ (not allowed to change caller's buffer) and the -+ response buffer size is too small. This isn't a -+ reliable way to detect truncation because the ioctl -+ may be an inaccurate report of the UDP message size. -+ Therefore we use this only to issue debug output. -+ To do truncation accurately with UDP we need -+ MSG_TRUNC which is only available on Linux. We -+ can abstract out the Linux-specific feature in the -+ future to detect truncation. */ -+ if (__glibc_unlikely (*thisanssizp < *thisresplenp)) { -+ Dprint(statp->options & RES_DEBUG, -+ (stdout, ";; response may be truncated (UDP)\n") -+ ); -+ } -+ - HEADER *anhp = (HEADER *) *thisansp; - socklen_t fromlen = sizeof(struct sockaddr_in6); - assert (sizeof(from) <= fromlen);
package/glibc/2.21/0002-fix-CVE-2015-1781.patch deleted +0 -32
@@ -1,32 +0,0 @@ -From 10c6d2e3243cefdd22933d3706f53d9f913c6cab Mon Sep 17 00:00:00 2001 -From: Arjun Shankar <[email protected]> -Date: Tue, 21 Apr 2015 14:06:31 +0200 -Subject: [PATCH] CVE-2015-1781: resolv/nss_dns/dns-host.c buffer overflow - [BZ#18287] - -Fixes: -CVE-2015-1781 - buffer overflow in gethostbyname_r() and related -functions with misaligned buffer. - -Signed-off-by: Gustavo Zacarias <[email protected]> ---- - resolv/nss_dns/dns-host.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -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: --- -2.4.4 -
package/glibc/2.21/0003-fix-CVE-2014-8121.patch deleted +0 -176
176 lines not on this page · raw message
package/glibc/Config.in +0 -4
@@ -34,9 +34,6 @@ choice prompt "glibc version" default BR2_GLIBC_VERSION_2_22 -config BR2_GLIBC_VERSION_2_21 - bool "2.21" - config BR2_GLIBC_VERSION_2_22 bool "2.22" # No support for pthread barriers on < v9 ISA
@@ -55,6 +52,5 @@ config BR2_GLIBC_VERSION_STRING string default "2.18-svnr23787" if BR2_EGLIBC_VERSION_2_18 default "2.19-svnr25243" if BR2_EGLIBC_VERSION_2_19 - default "2.21" if BR2_GLIBC_VERSION_2_21 default "2.22" if BR2_GLIBC_VERSION_2_22 default "2.23" if BR2_GLIBC_VERSION_2_23
package/glibc/glibc.hash +0 -1
@@ -4,6 +4,5 @@ md5 b395b021422a027d89884992e91734fc eglibc-2.18-svnr23787.tar.bz2 sha1 224d9e655e8f0ad04ffde47b97a11c64e2255b56 eglibc-2.18-svnr23787.tar.bz2 md5 197836c2ba42fb146e971222647198dd eglibc-2.19-svnr25243.tar.bz2 sha1 8013c1935b46fd50d2d1fbfad3b0af362b75fb28 eglibc-2.19-svnr25243.tar.bz2 -sha256 aeeb362437965a5d3f40b151094ca79def04a115bd363fdd4a9a0c69482923b8 glibc-2.21.tar.xz sha256 eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948 glibc-2.22.tar.xz sha256 94efeb00e4603c8546209cefb3e1a50a5315c86fa9b078b6fad758e187ce13e9 glibc-2.23.tar.xz
toolchain/toolchain-buildroot/Config.in +2 -3
@@ -68,9 +68,8 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC BR2_aarch64_be || BR2_i386 || BR2_mips || \ BR2_mipsel || BR2_mips64 || BR2_mips64el|| \ BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \ - BR2_sh || BR2_sh64 || BR2_sparc || \ - BR2_sparc64 || BR2_x86_64 || BR2_microblaze || \ - BR2_nios2 + BR2_sh || BR2_sh64 || BR2_sparc64 || \ + BR2_x86_64 || BR2_microblaze || BR2_nios2 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS depends on !BR2_powerpc_SPE
Signature · 1 line
2.4.10
PATCH 1/1 glibc: remove version 2.21
Gustavo,
Quoted 3 lines · Gustavo Zacarias
Mask out glibc for sparc as well since it's no longer available.
Signed-off-by Gustavo Zacarias <[email protected]>
Is it SPARC entirely, or only some specific architecture variants of SPARC that are no longer supported ?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 glibc: remove version 2.21
Quoted 11 lines · Thomas Petazzoni
Gustavo,
Quoted 3 lines · Gustavo Zacarias
Mask out glibc for sparc as well since it's no longer available.
Signed-off-by Gustavo Zacarias <[email protected]>Is it SPARC entirely, or only some specific architecture variants of SPARC that are no longer supported ?
Thomas
Quick SPARC lesson.
SPARC < V9 = 32 bits (AKA sparc arch).
SPARC >= V9 = 64 bits and 32 bits as well (similar to x86, AKA sparc64 arch).
Now, you can use atomics for >= v9 and even on 32 bits, but normally even if you use 32 bit userland you want a 64 bit kernel anyway (IIRC solaris supports 32 bit kernel as well for old/transition versions, but AFAIK linux never went there).
So basically yes, sparc = no glibc, sparc64 = yes glibc, because we don't support multilib (in gentoo it wasn't 100% multilib in the past, except that binutils/gcc did support -m64/-m32, but there wasn't libc support, hence not really multilib).
If/when said support is in place someone can update it. Regards.
PATCH 1/1 glibc: remove version 2.21
Hello,
Quoted 5 lines · Gustavo Zacarias
Quoted 3 lines
Is it SPARC entirely, or only some specific architecture variants of SPARC that are no longer supported ?
Quick SPARC lesson.
Good, because I don't know anything about SPARC :)
Quoted 3 lines
SPARC < V9 = 32 bits (AKA sparc arch).
SPARC >= V9 = 64 bits and 32 bits as well (similar to x86, AKA sparc64 arch).
ACK.
Quoted 4 lines
Now, you can use atomics for >= v9 and even on 32 bits, but normally even if you use 32 bit userland you want a 64 bit kernel anyway (IIRC solaris supports 32 bit kernel as well for old/transition versions, but AFAIK linux never went there).
I don't really see why you're talking specifically about atomics here, but OK with the rest.
Quoted 4 lines
So basically yes, sparc = no glibc, sparc64 = yes glibc, because we don't support multilib (in gentoo it wasn't 100% multilib in the past, except that binutils/gcc did support -m64/-m32, but there wasn't libc support, hence not really multilib).
I don't follow the relation with multilib support. Care to expand on this?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 glibc: remove version 2.21
Quoted 2 lines · Thomas Petazzoni
I don't really see why you're talking specifically about atomics here, but OK with the rest.
Because newer glibc versions need them for thread barriers, see glibc source in sysdeps/sparc/sparc32/atomic-machine.h
Quoted 7 lines
Quoted 4 lines
So basically yes, sparc = no glibc, sparc64 = yes glibc, because we don't support multilib (in gentoo it wasn't 100% multilib in the past, except that binutils/gcc did support -m64/-m32, but there wasn't libc support, hence not really multilib).
I don't follow the relation with multilib support. Care to expand on this?
Since you can't build a 32-bit linux kernel for v9+ then you need a gcc capable of -m64 for v9, even if your userland is 32-bit. There's no separation in cpu mode for SPARC 32/64 bits like there is for x86, so you can use the new instructions even in 32-bit "mode". Regards.
Thomas Petazzoni
AppliedPATCH 1/1 glibc: remove version 2.21
In reply to Gustavo ZacariasDear Gustavo Zacarias,
Quoted 14 lines · Gustavo Zacarias
Mask out glibc for sparc as well since it's no longer available.
Signed-off-by Gustavo Zacarias <[email protected]>--- package/glibc/2.21/0001-fix-CVE-2015-7547.patch | 236 ------------------------ package/glibc/2.21/0002-fix-CVE-2015-1781.patch | 32 ---- package/glibc/2.21/0003-fix-CVE-2014-8121.patch | 176 ------------------ package/glibc/Config.in | 4 - package/glibc/glibc.hash | 1 - toolchain/toolchain-buildroot/Config.in | 5 +- 6 files changed, 2 insertions(+), 452 deletions(-) delete mode 100644 package/glibc/2.21/0001-fix-CVE-2015-7547.patch delete mode 100644 package/glibc/2.21/0002-fix-CVE-2015-1781.patch delete mode 100644 package/glibc/2.21/0003-fix-CVE-2014-8121.patch
Applied to next, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com