SHA256
1
0
forked from pool/glibc

Accepting request 141127 from home:a_jaeger:devel-glibc

Update to glibc 2.17 development version

OBS-URL: https://build.opensuse.org/request/show/141127
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=227
This commit is contained in:
Andreas Jaeger 2012-11-13 11:56:09 +00:00 committed by Git OBS Bridge
parent 0b06ab6125
commit 2b52d0268e
17 changed files with 142 additions and 742 deletions

View File

@ -1,8 +1,8 @@
Index: glibc-2.15.90/Versions.def Index: glibc-2.16.90/Versions.def
=================================================================== ===================================================================
--- glibc-2.15.90.orig/Versions.def --- glibc-2.16.90.orig/Versions.def
+++ glibc-2.15.90/Versions.def +++ glibc-2.16.90/Versions.def
@@ -41,6 +41,7 @@ libc { @@ -42,6 +42,7 @@ libc {
} }
libcrypt { libcrypt {
GLIBC_2.0 GLIBC_2.0
@ -10,10 +10,10 @@ Index: glibc-2.15.90/Versions.def
} }
libdl { libdl {
GLIBC_2.0 GLIBC_2.0
Index: glibc-2.15.90/crypt/Versions Index: glibc-2.16.90/crypt/Versions
=================================================================== ===================================================================
--- glibc-2.15.90.orig/crypt/Versions --- glibc-2.16.90.orig/crypt/Versions
+++ glibc-2.15.90/crypt/Versions +++ glibc-2.16.90/crypt/Versions
@@ -3,4 +3,7 @@ libcrypt { @@ -3,4 +3,7 @@ libcrypt {
crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r;
crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra;

View File

@ -1,7 +1,7 @@
Index: glibc-2.15.90/crypt/Makefile Index: glibc-2.16.90/crypt/Makefile
=================================================================== ===================================================================
--- glibc-2.15.90.orig/crypt/Makefile --- glibc-2.16.90.orig/crypt/Makefile
+++ glibc-2.15.90/crypt/Makefile +++ glibc-2.16.90/crypt/Makefile
@@ -21,6 +21,7 @@ @@ -21,6 +21,7 @@
subdir := crypt subdir := crypt
@ -16,13 +16,13 @@ Index: glibc-2.15.90/crypt/Makefile
+libcrypt-routines += crypt_blowfish x86 crypt_gensalt wrapper +libcrypt-routines += crypt_blowfish x86 crypt_gensalt wrapper
+ +
tests := cert md5c-test sha256c-test sha512c-test tests := cert md5c-test sha256c-test sha512c-test badsalttest
include ../Makeconfig include ../Makeconfig
Index: glibc-2.15.90/crypt/Versions Index: glibc-2.16.90/crypt/Versions
=================================================================== ===================================================================
--- glibc-2.15.90.orig/crypt/Versions --- glibc-2.16.90.orig/crypt/Versions
+++ glibc-2.15.90/crypt/Versions +++ glibc-2.16.90/crypt/Versions
@@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
libcrypt { libcrypt {
GLIBC_2.0 { GLIBC_2.0 {
@ -30,11 +30,11 @@ Index: glibc-2.15.90/crypt/Versions
+ crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; + crypt_rn; crypt_ra; crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra;
} }
} }
Index: glibc-2.15.90/crypt/crypt-entry.c Index: glibc-2.16.90/crypt/crypt-entry.c
=================================================================== ===================================================================
--- glibc-2.15.90.orig/crypt/crypt-entry.c --- glibc-2.16.90.orig/crypt/crypt-entry.c
+++ glibc-2.15.90/crypt/crypt-entry.c +++ glibc-2.16.90/crypt/crypt-entry.c
@@ -79,7 +79,7 @@ extern struct crypt_data _ufc_foobar; @@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar;
*/ */
char * char *
@ -43,7 +43,7 @@ Index: glibc-2.15.90/crypt/crypt-entry.c
const char *key; const char *key;
const char *salt; const char *salt;
struct crypt_data * __restrict data; struct crypt_data * __restrict data;
@@ -134,6 +134,7 @@ __crypt_r (key, salt, data) @@ -155,6 +155,7 @@ __crypt_r (key, salt, data)
_ufc_output_conversion_r (res[0], res[1], salt, data); _ufc_output_conversion_r (res[0], res[1], salt, data);
return data->crypt_3_buf; return data->crypt_3_buf;
} }
@ -51,7 +51,7 @@ Index: glibc-2.15.90/crypt/crypt-entry.c
weak_alias (__crypt_r, crypt_r) weak_alias (__crypt_r, crypt_r)
char * char *
@@ -174,3 +175,4 @@ __fcrypt (key, salt) @@ -197,3 +198,4 @@ __fcrypt (key, salt)
return crypt (key, salt); return crypt (key, salt);
} }
#endif #endif

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:20d50dad9b65e8ed9936825f71a5cd6dc45f5cdefecd76290b4f744a1ed1e5f1
size 10145504

View File

@ -1,77 +0,0 @@
2012-07-02 Jeroen van Bemmel <jvb127@gmail.com>
[BZ #14307]
[BZ #13904]
* sysdeps/posix/getaddrinfo.c ( gaih_inet ): Increase the size of
the temporary buffer used to invoke __gethostbyname2_r,
__gethostbyaddr_r and gethostbyname4_r to make room for struct
host_data / struct gaih_addrtuple.
* resolv/nss_dns/dns-host.c (global scope): Move definition of
implementation constants MAX_NR_ALIASES and MAX_NR_ADDRS to
header file nss/nsswitch.h.
* nss/nsswitch.h (global scope): Add definition of implementation
constants MAX_NR_ALIASES and MAX_NR_ADDRS (moved from
resolv/nss_dns/dns-host.c).
diff --git glibc/nss/nsswitch.h glibc/nss/nsswitch.h
index 90e208b..8965819 100644
--- glibc/nss/nsswitch.h
+++ glibc/nss/nsswitch.h
@@ -198,4 +198,8 @@ extern int __nss_hostname_digits_dots (const char *name,
int *h_errnop);
libc_hidden_proto (__nss_hostname_digits_dots)
+/* Maximum number of aliases we allow. */
+#define MAX_NR_ALIASES 48
+#define MAX_NR_ADDRS 48
+
#endif /* nsswitch.h */
diff --git glibc/resolv/nss_dns/dns-host.c glibc/resolv/nss_dns/dns-host.c
index a924d40..6b62c05 100644
--- glibc/resolv/nss_dns/dns-host.c
+++ glibc/resolv/nss_dns/dns-host.c
@@ -88,10 +88,6 @@
#define RESOLVSORT
-/* Maximum number of aliases we allow. */
-#define MAX_NR_ALIASES 48
-#define MAX_NR_ADDRS 48
-
#if PACKETSZ > 65536
# define MAXPACKET PACKETSZ
#else
diff --git glibc/sysdeps/posix/getaddrinfo.c glibc/sysdeps/posix/getaddrinfo.c
index 2eca2ae..efb0423 100644
--- glibc/sysdeps/posix/getaddrinfo.c
+++ glibc/sysdeps/posix/getaddrinfo.c
@@ -568,7 +568,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
IPv6 scope ids. */
if (req->ai_family == AF_INET)
{
- size_t tmpbuflen = 512;
+ /* Allocate additional room for struct host_data in getanswer_r */
+ size_t tmpbuflen = 512 + MAX_NR_ALIASES * sizeof(char*) + 16 * sizeof(char);
assert (tmpbuf == NULL);
tmpbuf = alloca_account (tmpbuflen, alloca_used);
int rc;
@@ -811,7 +812,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
old_res_options = _res.options;
_res.options &= ~RES_USE_INET6;
- size_t tmpbuflen = 1024;
+ size_t tmpbuflen = 1024 + sizeof(struct gaih_addrtuple);
malloc_tmpbuf = !__libc_use_alloca (alloca_used + tmpbuflen);
assert (tmpbuf == NULL);
if (!malloc_tmpbuf)
@@ -1113,7 +1114,9 @@ gaih_inet (const char *name, const struct gaih_service *service,
struct hostent *h = NULL;
int herrno;
struct hostent th;
- size_t tmpbuf2len = 512;
+ /* Add room for struct host_data in resolv/nss_dns/dns-host.c */
+ size_t tmpbuf2len = 512 + (MAX_NR_ALIASES+MAX_NR_ADDRS+1)*sizeof(char*)
+ + 16 * sizeof(char);
do
{

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ca5cd6de3eb414d7114c9ed966ed7f4afcfd523eb5e515b5b0528533dd397a37
size 11120836

View File

@ -1,8 +1,8 @@
Index: glibc-2.15.90/elf/rtld.c Index: glibc-2.16.90/elf/rtld.c
=================================================================== ===================================================================
--- glibc-2.15.90.orig/elf/rtld.c --- glibc-2.16.90.orig/elf/rtld.c
+++ glibc-2.15.90/elf/rtld.c +++ glibc-2.16.90/elf/rtld.c
@@ -1813,6 +1813,53 @@ ERROR: ld.so: object '%s' cannot be load @@ -1717,6 +1717,53 @@ ERROR: ld.so: object '%s' cannot be load
} }
} }

View File

@ -3,18 +3,18 @@ The addition of the Blowfish cipher functions also requires updating
the ABI check list for all targets. the ABI check list for all targets.
--- ---
glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist | 12 ++++++++++ ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist | 12 ++++++++++
glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist | 12 ++++++++++ ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist | 12 ++++++++++
glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist | 12 ++++++++++ ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist | 12 ++++++++++
glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist | 12 ++++++++++ ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist | 12 ++++++++++
glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist | 12 ++++++++++ ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist | 12 ++++++++++
glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist | 12 ++++++++++ ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist | 12 ++++++++++
glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist | 12 ++++++++++ ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist | 12 ++++++++++
glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist | 12 ++++++++++ ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist | 12 ++++++++++
glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist | 12 ++++++++++ ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist | 12 ++++++++++
glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist | 12 ++++++++++ ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist | 12 ++++++++++
glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist | 12 ++++++++++ ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist | 12 ++++++++++
glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist | 12 ++++++++++ ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist | 12 ++++++++++
sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist | 12 ++++++++++ sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist | 12 ++++++++++
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist | 12 ++++++++++ sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist | 12 ++++++++++
sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist | 12 ++++++++++ sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist | 12 ++++++++++
@ -27,10 +27,10 @@ the ABI check list for all targets.
sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist | 12 ++++++++++ sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist | 12 ++++++++++
22 files changed, 264 insertions(+) 22 files changed, 264 insertions(+)
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
=================================================================== ===================================================================
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist --- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist +++ glibc-2.16/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
@@ -1,9 +1,21 @@ @@ -1,9 +1,21 @@
GLIBC_2.0 GLIBC_2.0
GLIBC_2.0 A GLIBC_2.0 A
@ -53,10 +53,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.a
+ crypt_gensalt_rn F + crypt_gensalt_rn F
+ crypt_ra F + crypt_ra F
+ crypt_rn F + crypt_rn F
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
=================================================================== ===================================================================
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist --- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist +++ glibc-2.16/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
@@ -1,9 +1,21 @@ @@ -1,9 +1,21 @@
GLIBC_2.4 GLIBC_2.4
GLIBC_2.4 A GLIBC_2.4 A
@ -79,10 +79,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abi
+ crypt_gensalt_rn F + crypt_gensalt_rn F
+ crypt_ra F + crypt_ra F
+ crypt_rn F + crypt_rn F
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
=================================================================== ===================================================================
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist --- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist +++ glibc-2.16/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
@@ -1,9 +1,21 @@ @@ -1,9 +1,21 @@
GLIBC_2.0 GLIBC_2.0
GLIBC_2.0 A GLIBC_2.0 A
@ -105,10 +105,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.ab
+ crypt_gensalt_rn F + crypt_gensalt_rn F
+ crypt_ra F + crypt_ra F
+ crypt_rn F + crypt_rn F
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
=================================================================== ===================================================================
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist --- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist +++ glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
@@ -1,9 +1,21 @@ @@ -1,9 +1,21 @@
GLIBC_2.4 GLIBC_2.4
GLIBC_2.4 A GLIBC_2.4 A
@ -131,10 +131,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/li
+ crypt_gensalt_rn F + crypt_gensalt_rn F
+ crypt_ra F + crypt_ra F
+ crypt_rn F + crypt_rn F
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
=================================================================== ===================================================================
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist --- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist +++ glibc-2.16/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
@@ -1,9 +1,21 @@ @@ -1,9 +1,21 @@
GLIBC_2.0 GLIBC_2.0
GLIBC_2.0 A GLIBC_2.0 A
@ -157,10 +157,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc
+ crypt_gensalt_rn F + crypt_gensalt_rn F
+ crypt_ra F + crypt_ra F
+ crypt_rn F + crypt_rn F
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
=================================================================== ===================================================================
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist --- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist +++ glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
@@ -1,7 +1,12 @@ @@ -1,7 +1,12 @@
GLIBC_2.0 GLIBC_2.0
GLIBC_2.0 A GLIBC_2.0 A
@ -185,10 +185,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc
+ crypt_gensalt_rn F + crypt_gensalt_rn F
+ crypt_ra F + crypt_ra F
+ crypt_rn F + crypt_rn F
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
=================================================================== ===================================================================
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist --- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist +++ glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
@@ -1,9 +1,21 @@ @@ -1,9 +1,21 @@
GLIBC_2.0 GLIBC_2.0
GLIBC_2.0 A GLIBC_2.0 A
@ -211,10 +211,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/
+ crypt_gensalt_rn F + crypt_gensalt_rn F
+ crypt_ra F + crypt_ra F
+ crypt_rn F + crypt_rn F
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
=================================================================== ===================================================================
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist --- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist +++ glibc-2.16/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
@@ -1,9 +1,21 @@ @@ -1,9 +1,21 @@
GLIBC_2.0 GLIBC_2.0
GLIBC_2.0 A GLIBC_2.0 A
@ -237,10 +237,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/
+ crypt_gensalt_rn F + crypt_gensalt_rn F
+ crypt_ra F + crypt_ra F
+ crypt_rn F + crypt_rn F
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
=================================================================== ===================================================================
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist --- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist +++ glibc-2.16/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
@@ -1,9 +1,21 @@ @@ -1,9 +1,21 @@
GLIBC_2.0 GLIBC_2.0
GLIBC_2.0 A GLIBC_2.0 A
@ -263,10 +263,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/powerpc/powerpc32/nof
+ crypt_gensalt_rn F + crypt_gensalt_rn F
+ crypt_ra F + crypt_ra F
+ crypt_rn F + crypt_rn F
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
=================================================================== ===================================================================
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist --- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist +++ glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
@@ -1,9 +1,21 @@ @@ -1,9 +1,21 @@
GLIBC_2.12 GLIBC_2.12
GLIBC_2.12 A GLIBC_2.12 A
@ -289,10 +289,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/
+ crypt_gensalt_rn F + crypt_gensalt_rn F
+ crypt_ra F + crypt_ra F
+ crypt_rn F + crypt_rn F
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
=================================================================== ===================================================================
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist --- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist +++ glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
@@ -1,9 +1,21 @@ @@ -1,9 +1,21 @@
GLIBC_2.12 GLIBC_2.12
GLIBC_2.12 A GLIBC_2.12 A
@ -315,10 +315,10 @@ Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/
+ crypt_gensalt_rn F + crypt_gensalt_rn F
+ crypt_ra F + crypt_ra F
+ crypt_rn F + crypt_rn F
Index: glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist Index: glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
=================================================================== ===================================================================
--- glibc-2.16.orig/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist --- glibc-2.16.orig/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
+++ glibc-2.16/glibc-ports-2.16/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist +++ glibc-2.16/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
@@ -1,9 +1,21 @@ @@ -1,9 +1,21 @@
GLIBC_2.12 GLIBC_2.12
GLIBC_2.12 A GLIBC_2.12 A

View File

@ -1,78 +0,0 @@
Index: glibc-2.15/posix/gai.conf
===================================================================
--- glibc-2.15.orig/posix/gai.conf
+++ glibc-2.15/posix/gai.conf
@@ -67,11 +67,66 @@
#scopev4 ::ffff:192.168.0.0/112 5
#scopev4 ::ffff:0.0.0.0/96 14
#
-# For sites which use site-local IPv4 addresses behind NAT there is
-# the problem that even if IPv4 addresses are preferred they do not
-# have the same scope and are therefore not sorted first. To change
-# this use only these rules:
+# Back in 2003, the sorting algorithm used by getaddrinfo() was defined in RFC
+# 3484. However, this document did not take into account (or foresee) the
+# ubiquity of IPv4 NAT on today's internet. This in turn causes some real
+# operational problems that's hindering the deployment of IPv6 for content
+# providers.
+#
+# The problem scenario is the following:
+#
+# An end user is located in a network numbered with private (RFC 1918) IPv4
+# addresses and transitional 6to4 (RFC 3056) IPv6 addresses. The network is
+# connected to the internet by a CPE/SOHO device implementing NAT for IPv4 and
+# anycasted 6to4 (RFC 3068) for IPv6.
+#
+# When the user attempts to connect to a server whose hostname has both IPv4
+# and IPv6 addresses published in DNS, an IPv6 connection using the
+# transitional 6to4 service will be preferred. This happens because the scope
+# comparison fails for IPv4, the RFC 1918 addresses are assumed to have
+# site-local scope, which is smaller than the global scope of the server's IPv4
+# address. For IPv6, both the server's and the client's (6to4) address have
+# global scope.
+#
+# Unfortunately, the operational reality is that a transitional technique such
+# as 6to4 is much less reliable than IPv4. The relay routers might be located
+# far away from the optimal IPv4 path, and thus cause a significant latency
+# increase, or they might not even work optimally (they're usually operated by
+# voulenteering third parties on a best-effort basis), and finally some ISPs
+# simply filter away all proto-41 traffic. Transitional techniques are useful
+# to give end users with IPv4-only service a real shot at accessing IPv6-only
+# content, but it should never be preferred over IPv4 service when accessing
+# dual-stacked content.
+#
+# RFC 3484 even acknowledges this, by saying to "avoid the use of transitional
+# addresses when native addresses are available".
+#
+# An IETF draft document which describes the problem in a much more detailed
+# manner than I have is available here:
+#
+# http://tools.ietf.org/html/draft-denis-v6ops-nat-addrsel-00
+#
+# There's also an IETF draft that aims to revise RFC 3484 in order to fix this
+# problem (amongst others):
+#
+# http://tools.ietf.org/html/draft-arifumi-6man-rfc3484-revise-02
+#
+# Quoting from this document:
+#
+# > 2.7. To change private IPv4 address scope
+# >
+# > As detailed in Remi's draft [I-D.denis-v6ops-nat-addrsel], when a
+# > host is in NATed site, and has a private IPv4 address and
+# > transitional addresses like 6to4 and Teredo, the host chooses
+# > transitional IPv6 address to access most of the dual-stack servers.
+# >
+# > This is because private IPv4 address is defined to be site-local
+# > scope, and as in RFC 3484, the scope matching rules (Rule 2) set
+# > lower priority for private IPv4 address.
+# >
+# > By changing the address scope of private IPv4 address to global, this
+# > problem can be solved.
#
-#scopev4 ::ffff:169.254.0.0/112 2
-#scopev4 ::ffff:127.0.0.0/104 2
-#scopev4 ::ffff:0.0.0.0/96 14
+scopev4 ::ffff:10.0.0.0/104 14
+scopev4 ::ffff:172.16.0.0/108 14
+scopev4 ::ffff:192.168.0.0/112 14

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4afc22409c53c5d55a86fc8e5fc1f029dd7d42d3d19d61b64c98e4110f52c829
size 946700

View File

@ -17,22 +17,22 @@ git diff -R 'fcabc0f8b185f9e0a9289720be5ede6c39b3bf21^!'
2011-05-12 Ulrich Drepper <drepper@gmail.com> 2011-05-12 Ulrich Drepper <drepper@gmail.com>
[BZ #12511] [BZ #12511]
Index: glibc-2.15.90/libio/Makefile Index: glibc-2.16.90/libio/Makefile
=================================================================== ===================================================================
--- glibc-2.15.90.orig/libio/Makefile --- glibc-2.16.90.orig/libio/Makefile
+++ glibc-2.15.90/libio/Makefile +++ glibc-2.16.90/libio/Makefile
@@ -57,7 +57,7 @@ tests = tst_swprintf tst_wprintf tst_sws @@ -59,7 +59,7 @@ tests = tst_swprintf tst_wprintf tst_sws
tst-memstream1 tst-memstream2 \ tst-memstream1 tst-memstream2 \
tst-wmemstream1 tst-wmemstream2 \ tst-wmemstream1 tst-wmemstream2 \
bug-memstream1 bug-wmemstream1 \ bug-memstream1 bug-wmemstream1 \
- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos bug-fclose1 - tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos bug-fclose1 tst-fseek
+ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos + tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek
test-srcs = test-freopen ifeq (yes,$(build-shared))
# Add test-fopenloc only if shared library is enabled since it depends on
all: # Make this the default target; it will be defined in Rules. # shared localedata objects.
Index: glibc-2.15.90/libio/bug-fclose1.c Index: glibc-2.16.90/libio/bug-fclose1.c
=================================================================== ===================================================================
--- glibc-2.15.90.orig/libio/bug-fclose1.c --- glibc-2.16.90.orig/libio/bug-fclose1.c
+++ /dev/null +++ /dev/null
@@ -1,132 +0,0 @@ @@ -1,132 +0,0 @@
-// BZ #12724 -// BZ #12724
@ -167,10 +167,10 @@ Index: glibc-2.15.90/libio/bug-fclose1.c
- -
- return 0; - return 0;
-} -}
Index: glibc-2.15.90/libio/fileops.c Index: glibc-2.16.90/libio/fileops.c
=================================================================== ===================================================================
--- glibc-2.15.90.orig/libio/fileops.c --- glibc-2.16.90.orig/libio/fileops.c
+++ glibc-2.15.90/libio/fileops.c +++ glibc-2.16.90/libio/fileops.c
@@ -155,21 +155,13 @@ int @@ -155,21 +155,13 @@ int
_IO_new_file_close_it (fp) _IO_new_file_close_it (fp)
_IO_FILE *fp; _IO_FILE *fp;

View File

@ -1,13 +1,13 @@
Index: glibc-2.15.90/csu/version.c Index: glibc-2.16.90/csu/version.c
=================================================================== ===================================================================
--- glibc-2.15.90.orig/csu/version.c --- glibc-2.16.90.orig/csu/version.c
+++ glibc-2.15.90/csu/version.c +++ glibc-2.16.90/csu/version.c
@@ -24,11 +24,12 @@ static const char __libc_release[] = REL @@ -24,11 +24,12 @@ static const char __libc_release[] = REL
static const char __libc_version[] = VERSION; static const char __libc_version[] = VERSION;
static const char banner[] = static const char banner[] =
-"GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\ -"GNU C Library "PKGVERSION RELEASE" release version "VERSION", by Roland McGrath et al.\n\
+"GNU C Library "RELEASE" release version "VERSION" ("CVSDATE"), by Roland McGrath et al.\n\ +"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git "GITID"), by Roland McGrath et al.\n\
Copyright (C) 2012 Free Software Foundation, Inc.\n\ Copyright (C) 2012 Free Software Foundation, Inc.\n\
This is free software; see the source for copying conditions.\n\ This is free software; see the source for copying conditions.\n\
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\

View File

@ -1,3 +1,32 @@
-------------------------------------------------------------------
Sun Nov 11 09:54:43 UTC 2012 - aj@suse.de
- Update to current glibc 2.17 development snapshot (git 7e2bd01fcf3c):
* Upstream changes:
+ ports is now part of main tarball
+ Add port to ARM AArch64
+ New function secure_getenv
+ Systemtap static probes
+ The `clock_*' suite of functions (declared in <time.h>) is now
available directly in the main C library.
+ The `crypt' function now fails if passed salt bytes that violate the
specification for those values. On Linux, the `crypt' function will
consult /proc/sys/crypto/fips_enabled to determine if "FIPS mode" is
enabled, and fail on encrypted strings using the MD5 or DES algorithm
when the mode is enabled.
+ Optimzations and bug fixes
* remove upstream patches malloc-check-size.patch,
glibc-2.16-getaddrinfo-buffer.patch, sparc-bind-now.patch,
pthread-cond-wait-revert.patch
* Remove now obsolete patch glibc-gai-private4.diff
* Refresh patches glibc-2.14-crypt.diff, glibc-2.14-crypt-versioning.diff,
glibc-fix-check-abi.patch, nss-db-path.patch, glibc-2.3.90-noversion.diff,
glibc-revert-fseek-on-fclose.diff
* Disable patches glibc-compiled-binaries.diff, getaddrinfo-ipv6-sanity.diff
and glibc-gai-private4.diff.
* Use git id instead of ChangeLog date in version output (patch glibc-version.diff)
* Enable multi-arch on all architectures that support it.
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Nov 7 14:59:06 UTC 2012 - schwab@suse.de Wed Nov 7 14:59:06 UTC 2012 - schwab@suse.de

View File

@ -119,17 +119,13 @@ Obsoletes: glibc-32bit
Provides: ld-linux.so.3 Provides: ld-linux.so.3
Provides: ld-linux.so.3(GLIBC_2.4) Provides: ld-linux.so.3(GLIBC_2.4)
%endif %endif
Version: 2.16 Version: 2.16.90
Release: 0 Release: 0
%define glibc_major_version 2.16 %define glibc_major_version 2.16.90
%define git_id c3b96f90c9c1 %define git_id 7e2bd01fcf3c
%define glibc_ports_ver 2.16
%define ports_git_id a20c2b3c87ae
Url: http://www.gnu.org/software/libc/libc.html Url: http://www.gnu.org/software/libc/libc.html
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: glibc-%{version}-%{git_id}.tar.xz Source: glibc-%{version}-%{git_id}.tar.xz
%define glibc_ports_dir glibc-ports-%{glibc_ports_ver}
Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.xz
Source3: noversion.tar.bz2 Source3: noversion.tar.bz2
Source4: manpages.tar.bz2 Source4: manpages.tar.bz2
Source5: nsswitch.conf Source5: nsswitch.conf
@ -223,8 +219,6 @@ Patch103: glibc-2.4-china.diff
### Broken patches in glibc that we revert for now: ### Broken patches in glibc that we revert for now:
# PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de # PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de
Patch201: glibc-revert-fseek-on-fclose.diff Patch201: glibc-revert-fseek-on-fclose.diff
# PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs - aj@suse.de
Patch202: pthread-cond-wait-revert.patch
### Network related patches ### Network related patches
# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change # PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change
@ -233,8 +227,6 @@ Patch300: glibc-resolv-reload.diff
Patch301: glibc-2.2-sunrpc.diff Patch301: glibc-2.2-sunrpc.diff
# PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534 # PATCH-FIX-OPENSUSE only use ipv6 if real ipv6 address exists bnc#361697, bnc#684534
Patch302: getaddrinfo-ipv6-sanity.diff Patch302: getaddrinfo-ipv6-sanity.diff
# PATCH-FIX-OPENSUSE Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616]
Patch303: glibc-gai-private4.diff
# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv # PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv
Patch304: glibc-resolv-mdnshint.diff Patch304: glibc-resolv-mdnshint.diff
# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928 # PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928
@ -251,13 +243,6 @@ Patch402: nscd-avoid-gcc-warning.diff
### ###
# Patches from upstream # Patches from upstream
### ###
# PATCH-FIX-UPSTREAM Fix malloc_usable_size swo#1349, bnc#745247 - aj@suse.de
Patch1001: malloc-check-size.patch
# PATCH-FIX-UPSTREAM Fix dns buffer - aj@suse.de
Patch1021: glibc-2.16-getaddrinfo-buffer.patch
# PATCH-FIX-UPSTREAM Fix sparc dynamic linker triggered by bind-now swo#14376 - aj@suse.de
Patch1022: sparc-bind-now.patch
### ###
# Patches awaiting upstream approval # Patches awaiting upstream approval
@ -443,7 +428,7 @@ versions of your software.
%endif %endif
%prep %prep
%setup -n glibc-%{version} -q -a 2 -a 3 -a 4 %setup -n glibc-%{version} -q -a 3 -a 4
# Owl crypt_blowfish # Owl crypt_blowfish
tar -xzf %SOURCE50 tar -xzf %SOURCE50
pushd crypt_blowfish-%{crypt_bf_version} pushd crypt_blowfish-%{crypt_bf_version}
@ -471,7 +456,7 @@ rm nscd/s-stamp
%patch13 -p1 %patch13 -p1
%patch14 -p1 %patch14 -p1
%patch15 -p1 %patch15 -p1
%patch17 -p1 #%patch17 -p1
%patch18 -p1 %patch18 -p1
%patch21 -p1 %patch21 -p1
@ -481,12 +466,10 @@ rm nscd/s-stamp
%patch103 -p1 %patch103 -p1
%patch201 -p1 %patch201 -p1
%patch202 -p1
%patch300 -p1 %patch300 -p1
%patch301 -p1 %patch301 -p1
%patch302 -p1 #%patch302 -p1
%patch303 -p1
%patch304 -p1 %patch304 -p1
%patch305 -p1 %patch305 -p1
%patch306 -p1 %patch306 -p1
@ -497,9 +480,6 @@ rm nscd/s-stamp
%ifarch armv7l armv7hl %ifarch armv7l armv7hl
%patch20 -p1 %patch20 -p1
%endif %endif
%patch1001 -p1
%patch1021 -p1
%patch1022 -p1
%patch2001 -p1 %patch2001 -p1
# XXX Disable, it breaks the testsuite, test elf/tst-audit2 # XXX Disable, it breaks the testsuite, test elf/tst-audit2
@ -557,7 +537,7 @@ nice
export SUSE_ASNEEDED=0 export SUSE_ASNEEDED=0
# Adjust glibc version.h # Adjust glibc version.h
echo "#define CONFHOST \"%{target}\"" >> version.h echo "#define CONFHOST \"%{target}\"" >> version.h
echo "#define CVSDATE \"`date -r ChangeLog +%Y%m%d`\"" >> version.h echo "#define GITID \"%{git_id}\"" >> version.h
# #
# Default CFLAGS and Compiler # Default CFLAGS and Compiler
# #
@ -613,7 +593,7 @@ add_ons=",libidn"
add_ons=$add_ons,noversion add_ons=$add_ons,noversion
%endif %endif
%ifarch %arm mipsel ia64 %ifarch %arm mipsel ia64
add_ons=$add_ons,%glibc_ports_dir add_ons=$add_ons,ports
%endif %endif
%ifarch %arm mipsel %ifarch %arm mipsel
# fails to build otherwise - need to recheck and fix # fails to build otherwise - need to recheck and fix
@ -652,7 +632,7 @@ configure_and_build_glibc() {
--enable-stackguard-randomization \ --enable-stackguard-randomization \
%endif %endif
--build=%{target} --host=%{target} \ --build=%{target} --host=%{target} \
%ifarch ppc ppc64 %{ix86} x86_64 %ifarch %{ix86} x86_64 sparc sparc64 s390 s390x
--enable-multi-arch \ --enable-multi-arch \
%endif %endif
%ifarch mipsel %ifarch mipsel

View File

@ -1,176 +0,0 @@
commit 6ef9cc37f0ea151a54e5c8a19950a6d5b6ff8a96
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
Date: Wed Sep 5 21:49:00 2012 +0530
Return requested size for malloc_usable_size when MALLOC_CHECK_ > 0
[BZ #1349]
malloc_usable_size returns the usable size in an allocated chunk,
which may be >= the requested size. In the case of MALLOC_CHECK_ being
exported to > 0 however, only the requested size is usable, since a
magic value is written at the end of the request size to trap writes
beyond request bounds. Hence, when MALLOC_CHECK_ is exported to > 0,
malloc_usable_size() should return the request size.
2012-09-05 Siddhesh Poyarekar <siddhesh@redhat.com>
[BZ #1349]
* malloc/Makefile (tests): Add tst-malloc-usable test case.
(tst-malloc-usable-ENV): Set environment for test case.
* malloc/hooks.c (malloc_check_get_size): New function to get
requested size.
* malloc/malloc.c (musable): Use malloc_check_get_size.
* malloc/tst-malloc-usable.c: New test case.
diff --git a/malloc/Makefile b/malloc/Makefile
index 5d6d716..55c675b 100644
--- a/malloc/Makefile
+++ b/malloc/Makefile
@@ -1,5 +1,4 @@
-# Copyright (C) 1991-2003, 2005, 2006, 2007, 2009, 2011, 2012
-# Free Software Foundation, Inc.
+# Copyright (C) 1991-2012 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
@@ -26,7 +25,7 @@ all:
dist-headers := malloc.h
headers := $(dist-headers) obstack.h mcheck.h
tests := mallocbug tst-malloc tst-valloc tst-calloc tst-obstack \
- tst-mallocstate tst-mcheck tst-mallocfork tst-trim1
+ tst-mallocstate tst-mcheck tst-mallocfork tst-trim1 tst-malloc-usable
test-srcs = tst-mtrace
routines = malloc morecore mcheck mtrace obstack
@@ -116,6 +115,7 @@ endif
endif
tst-mcheck-ENV = MALLOC_CHECK_=3
+tst-malloc-usable-ENV = MALLOC_CHECK_=3
CPPFLAGS-malloc.c += -DPER_THREAD
# Uncomment this for test releases. For public releases it is too expensive.
diff --git a/malloc/hooks.c b/malloc/hooks.c
index 8a34c78..b38dffb 100644
--- a/malloc/hooks.c
+++ b/malloc/hooks.c
@@ -1,5 +1,5 @@
/* Malloc implementation for multiple threads without lock contention.
- Copyright (C) 2001-2009, 2011, 2012 Free Software Foundation, Inc.
+ Copyright (C) 2001-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Wolfram Gloger <wg@malloc.de>, 2001.
@@ -89,6 +89,35 @@ __malloc_check_init()
#define MAGICBYTE(p) ( ( ((size_t)p >> 3) ^ ((size_t)p >> 11)) & 0xFF )
+/* Visualize the chunk as being partitioned into blocks of 256 bytes from the
+ highest address of the chunk, downwards. The beginning of each block tells
+ us the size of the previous block, up to the actual size of the requested
+ memory. Our magic byte is right at the end of the requested size, so we
+ must reach it with this iteration, otherwise we have witnessed a memory
+ corruption. */
+static size_t
+malloc_check_get_size(mchunkptr p)
+{
+ size_t size;
+ unsigned char c;
+ unsigned char magic = MAGICBYTE(p);
+
+ assert(using_malloc_checking == 1);
+
+ for (size = chunksize(p) - 1 + (chunk_is_mmapped(p) ? 0 : SIZE_SZ);
+ (c = ((unsigned char*)p)[size]) != magic;
+ size -= c) {
+ if(c<=0 || size<(c+2*SIZE_SZ)) {
+ malloc_printerr(check_action, "malloc_check_get_size: memory corruption",
+ chunk2mem(p));
+ return 0;
+ }
+ }
+
+ /* chunk2mem size. */
+ return size - 2*SIZE_SZ;
+}
+
/* Instrument a chunk with overrun detector byte(s) and convert it
into a user pointer with requested size sz. */
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 0f1796c..bd562df 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -1,5 +1,5 @@
/* Malloc implementation for multiple threads without lock contention.
- Copyright (C) 1996-2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+ Copyright (C) 1996-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Wolfram Gloger <wg@malloc.de>
and Doug Lea <dl@cs.oswego.edu>, 2001.
@@ -4563,6 +4563,9 @@ musable(void* mem)
mchunkptr p;
if (mem != 0) {
p = mem2chunk(mem);
+
+ if (__builtin_expect(using_malloc_checking == 1, 0))
+ return malloc_check_get_size(p);
if (chunk_is_mmapped(p))
return chunksize(p) - 2*SIZE_SZ;
else if (inuse(p))
diff --git a/malloc/tst-malloc-usable.c b/malloc/tst-malloc-usable.c
new file mode 100644
index 0000000..18decd8
--- /dev/null
+++ b/malloc/tst-malloc-usable.c
@@ -0,0 +1,49 @@
+/* Ensure that malloc_usable_size returns the request size with
+ MALLOC_CHECK_ exported to a positive value.
+
+ Copyright (C) 2012 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, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <malloc.h>
+#include <string.h>
+#include <stdio.h>
+
+static int
+do_test (void)
+{
+ size_t usable_size;
+ void *p = malloc (7);
+ if (!p)
+ {
+ printf ("memory allocation failed\n");
+ return 1;
+ }
+
+ usable_size = malloc_usable_size (p);
+ if (usable_size != 7)
+ {
+ printf ("malloc_usable_size: expected 7 but got %zu\n", usable_size);
+ return 1;
+ }
+
+ memset (p, 0, usable_size);
+ free (p);
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"

View File

@ -1,9 +1,9 @@
Use /var/db for nss_db Use /var/db for nss_db
Index: glibc-2.15.90/nss/db-Makefile Index: glibc-2.16.90/nss/db-Makefile
=================================================================== ===================================================================
--- glibc-2.15.90.orig/nss/db-Makefile --- glibc-2.16.90.orig/nss/db-Makefile
+++ glibc-2.15.90/nss/db-Makefile +++ glibc-2.16.90/nss/db-Makefile
@@ -22,7 +22,7 @@ DATABASES = $(wildcard /etc/passwd /etc/ @@ -22,7 +22,7 @@ DATABASES = $(wildcard /etc/passwd /etc/
/etc/rpc /etc/services /etc/shadow /etc/gshadow \ /etc/rpc /etc/services /etc/shadow /etc/gshadow \
/etc/netgroup) /etc/netgroup)
@ -13,10 +13,10 @@ Index: glibc-2.15.90/nss/db-Makefile
AWK = awk AWK = awk
MAKEDB = makedb --quiet MAKEDB = makedb --quiet
Index: glibc-2.15.90/sysdeps/unix/sysv/linux/paths.h Index: glibc-2.16.90/sysdeps/unix/sysv/linux/paths.h
=================================================================== ===================================================================
--- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/paths.h --- glibc-2.16.90.orig/sysdeps/unix/sysv/linux/paths.h
+++ glibc-2.15.90/sysdeps/unix/sysv/linux/paths.h +++ glibc-2.16.90/sysdeps/unix/sysv/linux/paths.h
@@ -68,7 +68,7 @@ @@ -68,7 +68,7 @@
/* Provide trailing slash, since mostly used for building pathnames. */ /* Provide trailing slash, since mostly used for building pathnames. */
#define _PATH_DEV "/dev/" #define _PATH_DEV "/dev/"
@ -26,11 +26,11 @@ Index: glibc-2.15.90/sysdeps/unix/sysv/linux/paths.h
#define _PATH_VARRUN "/var/run/" #define _PATH_VARRUN "/var/run/"
#define _PATH_VARTMP "/var/tmp/" #define _PATH_VARTMP "/var/tmp/"
Index: glibc-2.15.90/Makeconfig Index: glibc-2.16.90/Makeconfig
=================================================================== ===================================================================
--- glibc-2.15.90.orig/Makeconfig --- glibc-2.16.90.orig/Makeconfig
+++ glibc-2.15.90/Makeconfig +++ glibc-2.16.90/Makeconfig
@@ -287,7 +287,7 @@ inst_sysconfdir = $(install_root)$(sysco @@ -250,7 +250,7 @@ inst_sysconfdir = $(install_root)$(sysco
# Directory for the database files and Makefile for nss_db. # Directory for the database files and Makefile for nss_db.
ifndef vardbdir ifndef vardbdir

View File

@ -1,244 +0,0 @@
http://sourceware.org/ml/libc-alpha/2012-01/msg00002.html
The following patch:
Has been reported as causing numerous problems in Fedora & Debian. I
don't think anyone has done any serious analysis of the issue, but the
patch has been pulled from both distributions because of the
instability it's introduced.
https://bugzilla.redhat.com/show_bug.cgi?id=769421
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651899
commit c5a0802a682dba23f92d47f0f99775aebfbe2539
Author: Andreas Schwab <schwab@redhat.com>
Date: Mon Nov 28 13:38:19 2011 +0100
Handle EAGAIN from FUTEX_WAIT_REQUEUE_PI
2011-11-28 Andreas Schwab <schwab@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Handle
EAGAIN from FUTEX_WAIT_REQUEUE_PI.
* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
Index: glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
===================================================================
--- glibc-2.15.90.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+++ glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
@@ -136,7 +136,6 @@ __pthread_cond_wait:
cmpl $PI_BIT, %eax
jne 18f
-90:
movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx
movl %ebp, %edx
xorl %esi, %esi
@@ -150,9 +149,6 @@ __pthread_cond_wait:
sete 16(%esp)
je 19f
- cmpl $-EAGAIN, %eax
- je 91f
-
/* Normal and PI futexes dont mix. Use normal futex functions only
if the kernel does not support the PI futex functions. */
cmpl $-ENOSYS, %eax
@@ -397,78 +393,6 @@ __pthread_cond_wait:
#endif
call __lll_unlock_wake
jmp 11b
-
-91:
-.LcleanupSTART2:
- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
- call it again. */
-
- /* Get internal lock. */
- movl $1, %edx
- xorl %eax, %eax
- LOCK
-#if cond_lock == 0
- cmpxchgl %edx, (%ebx)
-#else
- cmpxchgl %edx, cond_lock(%ebx)
-#endif
- jz 92f
-
-#if cond_lock == 0
- movl %ebx, %edx
-#else
- leal cond_lock(%ebx), %edx
-#endif
-#if (LLL_SHARED-LLL_PRIVATE) > 255
- xorl %ecx, %ecx
-#endif
- cmpl $-1, dep_mutex(%ebx)
- setne %cl
- subl $1, %ecx
- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
-#if LLL_PRIVATE != 0
- addl $LLL_PRIVATE, %ecx
-#endif
- call __lll_lock_wait
-
-92:
- /* Increment the cond_futex value again, so it can be used as a new
- expected value. */
- addl $1, cond_futex(%ebx)
- movl cond_futex(%ebx), %ebp
-
- /* Unlock. */
- LOCK
-#if cond_lock == 0
- subl $1, (%ebx)
-#else
- subl $1, cond_lock(%ebx)
-#endif
- je 93f
-#if cond_lock == 0
- movl %ebx, %eax
-#else
- leal cond_lock(%ebx), %eax
-#endif
-#if (LLL_SHARED-LLL_PRIVATE) > 255
- xorl %ecx, %ecx
-#endif
- cmpl $-1, dep_mutex(%ebx)
- setne %cl
- subl $1, %ecx
- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
-#if LLL_PRIVATE != 0
- addl $LLL_PRIVATE, %ecx
-#endif
- call __lll_unlock_wake
-
-93:
- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
- xorl %ecx, %ecx
- movl dep_mutex(%ebx), %edi
- jmp 90b
-.LcleanupEND2:
-
.size __pthread_cond_wait, .-__pthread_cond_wait
versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
GLIBC_2_3_2)
@@ -641,10 +565,6 @@ __condvar_w_cleanup:
.long .LcleanupEND-.Lsub_cond_futex
.long __condvar_w_cleanup-.LSTARTCODE
.uleb128 0
- .long .LcleanupSTART2-.LSTARTCODE
- .long .LcleanupEND2-.LcleanupSTART2
- .long __condvar_w_cleanup-.LSTARTCODE
- .uleb128 0
.long .LcallUR-.LSTARTCODE
.long .LENDCODE-.LcallUR
.long 0
Index: glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
===================================================================
--- glibc-2.15.90.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+++ glibc-2.15.90/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
@@ -136,14 +136,11 @@ __pthread_cond_wait:
cmpl $PI_BIT, %eax
jne 61f
-90:
movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
movl $SYS_futex, %eax
syscall
movl $1, %r8d
- cmpq $-EAGAIN, %rax
- je 91f
#ifdef __ASSUME_REQUEUE_PI
jmp 62f
#else
@@ -331,69 +328,6 @@ __pthread_cond_wait:
13: movq %r10, %rax
jmp 14b
-91:
-.LcleanupSTART2:
- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
- call it again. */
- movq 8(%rsp), %rdi
-
- /* Get internal lock. */
- movl $1, %esi
- xorl %eax, %eax
- LOCK
-#if cond_lock == 0
- cmpxchgl %esi, (%rdi)
-#else
- cmpxchgl %esi, cond_lock(%rdi)
-#endif
- jz 92f
-
-#if cond_lock != 0
- addq $cond_lock, %rdi
-#endif
- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi)
- movl $LLL_PRIVATE, %eax
- movl $LLL_SHARED, %esi
- cmovne %eax, %esi
- callq __lll_lock_wait
-#if cond_lock != 0
- subq $cond_lock, %rdi
-#endif
-92:
- /* Increment the cond_futex value again, so it can be used as a new
- expected value. */
- incl cond_futex(%rdi)
- movl cond_futex(%rdi), %edx
-
- /* Release internal lock. */
- LOCK
-#if cond_lock == 0
- decl (%rdi)
-#else
- decl cond_lock(%rdi)
-#endif
- jz 93f
-
-#if cond_lock != 0
- addq $cond_lock, %rdi
-#endif
- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi)
- movl $LLL_PRIVATE, %eax
- movl $LLL_SHARED, %esi
- cmovne %eax, %esi
- /* The call preserves %rdx. */
- callq __lll_unlock_wake
-#if cond_lock != 0
- subq $cond_lock, %rdi
-#endif
-93:
- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
- xorq %r10, %r10
- mov dep_mutex(%rdi), %R8_LP
- leaq cond_futex(%rdi), %rdi
- jmp 90b
-.LcleanupEND2:
-
.size __pthread_cond_wait, .-__pthread_cond_wait
versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
GLIBC_2_3_2)
@@ -546,15 +480,11 @@ __condvar_cleanup1:
.uleb128 .LcleanupSTART-.LSTARTCODE
.uleb128 .LcleanupEND-.LcleanupSTART
.uleb128 __condvar_cleanup1-.LSTARTCODE
- .uleb128 0
- .uleb128 .LcleanupSTART2-.LSTARTCODE
- .uleb128 .LcleanupEND2-.LcleanupSTART2
- .uleb128 __condvar_cleanup1-.LSTARTCODE
- .uleb128 0
+ .uleb128 0
.uleb128 .LcallUR-.LSTARTCODE
.uleb128 .LENDCODE-.LcallUR
.uleb128 0
- .uleb128 0
+ .uleb128 0
.Lcstend:

View File

@ -1,31 +0,0 @@
commit aa9bbfe6a79fce593ab3d298bb0e880d77eb7f71
Author: David S. Miller <davem@davemloft.net>
Date: Thu Sep 27 21:33:54 2012 -0700
Fix sparc64 crashes with LD_BIND_NOW and --enable-bind-now.
[BZ #14376]
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Do not
pass reloc->r_addend in as the 'high' argument to
sparc64_fixup_plt when handling R_SPARC_JMP_IREL relocations.
diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
index 35c24d1..2f8bbe1 100644
--- a/sysdeps/sparc/sparc64/dl-machine.h
+++ b/sysdeps/sparc/sparc64/dl-machine.h
@@ -458,7 +458,14 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
break;
case R_SPARC_JMP_IREL:
value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap));
- /* Fall thru */
+ /* 'high' is always zero, for large PLT entries the linker
+ emits an R_SPARC_IRELATIVE. */
+#ifdef RESOLVE_CONFLICT_FIND_MAP
+ sparc64_fixup_plt (NULL, reloc, reloc_addr, value, 0, 0);
+#else
+ sparc64_fixup_plt (map, reloc, reloc_addr, value, 0, 0);
+#endif
+ break;
case R_SPARC_JMP_SLOT:
#ifdef RESOLVE_CONFLICT_FIND_MAP
/* R_SPARC_JMP_SLOT conflicts against .plt[32768+]