forked from pool/glibc
Accepting request 186878 from Base:System
- Update to glibc 2.18 release * No source change - strcoll-overflow.patch: fix buffer overflow in strcoll (CVE-2012-4412, bnc#779320) - readdir_r-overflow.patch: fix readdir_r with long file names (CVE-2013-4237, bnc#834594) (forwarded request 186872 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/186878 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=153
This commit is contained in:
parent
418ae1c68f
commit
5b108142b5
@ -1,38 +0,0 @@
|
|||||||
From c272f67f9fc4c354336241ef4f3876771ccab443 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Schwab <schwab@suse.de>
|
|
||||||
Date: Mon, 20 May 2013 10:19:31 +0200
|
|
||||||
Subject: [PATCH] AArch64: Don't clobber argument for tail call to
|
|
||||||
__sigjmp_save in sigsetjmp
|
|
||||||
|
|
||||||
[BZ #15493]
|
|
||||||
* sysdeps/aarch64/setjmp.S (__sigsetjmp): Don't clobber register
|
|
||||||
x1.
|
|
||||||
[NOT_IN_libc && IS_IN_rtld]: Don't call __sigjmp_save.
|
|
||||||
---
|
|
||||||
ports/sysdeps/aarch64/setjmp.S | 10 ++++++++--
|
|
||||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ports/sysdeps/aarch64/setjmp.S b/ports/sysdeps/aarch64/setjmp.S
|
|
||||||
index cff81c7..10e0709 100644
|
|
||||||
--- a/ports/sysdeps/aarch64/setjmp.S
|
|
||||||
+++ b/ports/sysdeps/aarch64/setjmp.S
|
|
||||||
@@ -44,8 +44,14 @@ ENTRY (__sigsetjmp)
|
|
||||||
stp d10, d11, [x0, #JB_D10<<3]
|
|
||||||
stp d12, d13, [x0, #JB_D12<<3]
|
|
||||||
stp d14, d15, [x0, #JB_D14<<3]
|
|
||||||
- mov x1, sp
|
|
||||||
- str x1, [x0, #JB_SP<<3]
|
|
||||||
+ mov x2, sp
|
|
||||||
+ str x2, [x0, #JB_SP<<3]
|
|
||||||
+#if defined NOT_IN_libc && defined IS_IN_rtld
|
|
||||||
+ /* In ld.so we never save the signal mask */
|
|
||||||
+ mov w0, #0
|
|
||||||
+ RET
|
|
||||||
+#else
|
|
||||||
b C_SYMBOL_NAME(__sigjmp_save)
|
|
||||||
+#endif
|
|
||||||
END (__sigsetjmp)
|
|
||||||
hidden_def (__sigsetjmp)
|
|
||||||
--
|
|
||||||
1.8.2.3
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
|||||||
From b39949d21179bd0b08a083e4f7e35d0c98e11294 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Carlos O'Donell <carlos@redhat.com>
|
|
||||||
Date: Fri, 8 Feb 2013 12:26:12 -0500
|
|
||||||
Subject: [PATCH] ARM: Support loading unmarked objects from cache.
|
|
||||||
|
|
||||||
ARM now supports loading unmarked objects from
|
|
||||||
the dynamic loader cache. Unmarked objects can
|
|
||||||
be used with the hard-float or soft-float ABI.
|
|
||||||
We must support loading unmarked objects during
|
|
||||||
the transition period from a binutils that does
|
|
||||||
not mark objects to one that does mark them with
|
|
||||||
the correct ELF flags.
|
|
||||||
|
|
||||||
Signed-off-by: Carlos O'Donell <carlos@redhat.com>
|
|
||||||
---
|
|
||||||
ChangeLog | 5 +++++
|
|
||||||
elf/cache.c | 4 ++++
|
|
||||||
ports/ChangeLog.arm | 8 ++++++++
|
|
||||||
ports/sysdeps/unix/sysv/linux/arm/dl-cache.h | 9 +++++++--
|
|
||||||
ports/sysdeps/unix/sysv/linux/arm/readelflib.c | 6 ++++++
|
|
||||||
sysdeps/generic/ldconfig.h | 1 +
|
|
||||||
6 files changed, 31 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/elf/cache.c b/elf/cache.c
|
|
||||||
index 9901952..699550b 100644
|
|
||||||
--- a/elf/cache.c
|
|
||||||
+++ b/elf/cache.c
|
|
||||||
@@ -100,6 +100,10 @@ print_entry (const char *lib, int flag, unsigned int osversion,
|
|
||||||
case FLAG_AARCH64_LIB64:
|
|
||||||
fputs (",AArch64", stdout);
|
|
||||||
break;
|
|
||||||
+ /* Uses the ARM soft-float ABI. */
|
|
||||||
+ case FLAG_ARM_LIBSF:
|
|
||||||
+ fputs (",soft-float", stdout);
|
|
||||||
+ break;
|
|
||||||
case 0:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
diff --git a/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h b/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h
|
|
||||||
index acc4f28..504feca 100644
|
|
||||||
--- a/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h
|
|
||||||
+++ b/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h
|
|
||||||
@@ -18,12 +18,17 @@
|
|
||||||
|
|
||||||
#include <ldconfig.h>
|
|
||||||
|
|
||||||
+/* In order to support the transition from unmarked objects
|
|
||||||
+ to marked objects we must treat unmarked objects as
|
|
||||||
+ compatible with either FLAG_ARM_LIBHF or FLAG_ARM_LIBSF. */
|
|
||||||
#ifdef __ARM_PCS_VFP
|
|
||||||
# define _dl_cache_check_flags(flags) \
|
|
||||||
- ((flags) == (FLAG_ARM_LIBHF | FLAG_ELF_LIBC6))
|
|
||||||
+ ((flags) == (FLAG_ARM_LIBHF | FLAG_ELF_LIBC6) \
|
|
||||||
+ || (flags) == FLAG_ELF_LIBC6)
|
|
||||||
#else
|
|
||||||
# define _dl_cache_check_flags(flags) \
|
|
||||||
- ((flags) == FLAG_ELF_LIBC6)
|
|
||||||
+ ((flags) == (FLAG_ARM_LIBSF | FLAG_ELF_LIBC6) \
|
|
||||||
+ || (flags) == FLAG_ELF_LIBC6)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include_next <dl-cache.h>
|
|
||||||
diff --git a/ports/sysdeps/unix/sysv/linux/arm/readelflib.c b/ports/sysdeps/unix/sysv/linux/arm/readelflib.c
|
|
||||||
index 81e5ccb..3efb613 100644
|
|
||||||
--- a/ports/sysdeps/unix/sysv/linux/arm/readelflib.c
|
|
||||||
+++ b/ports/sysdeps/unix/sysv/linux/arm/readelflib.c
|
|
||||||
@@ -46,6 +46,12 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
|
|
||||||
if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_HARD)
|
|
||||||
*flag = FLAG_ARM_LIBHF|FLAG_ELF_LIBC6;
|
|
||||||
else if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_SOFT)
|
|
||||||
+ *flag = FLAG_ARM_LIBSF|FLAG_ELF_LIBC6;
|
|
||||||
+ else
|
|
||||||
+ /* We must assume the unmarked objects are compatible
|
|
||||||
+ with all ABI variants. Such objects may have been
|
|
||||||
+ generated in a transitional period when the ABI
|
|
||||||
+ tags were not added to all objects. */
|
|
||||||
*flag = FLAG_ELF_LIBC6;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/sysdeps/generic/ldconfig.h b/sysdeps/generic/ldconfig.h
|
|
||||||
index 57a9a46..91190aa 100644
|
|
||||||
--- a/sysdeps/generic/ldconfig.h
|
|
||||||
+++ b/sysdeps/generic/ldconfig.h
|
|
||||||
@@ -36,6 +36,7 @@
|
|
||||||
#define FLAG_X8664_LIBX32 0x0800
|
|
||||||
#define FLAG_ARM_LIBHF 0x0900
|
|
||||||
#define FLAG_AARCH64_LIB64 0x0a00
|
|
||||||
+#define FLAG_ARM_LIBSF 0x0b00
|
|
||||||
|
|
||||||
/* Name of auxiliary cache. */
|
|
||||||
#define _PATH_LDCONFIG_AUX_CACHE "/var/cache/ldconfig/aux-cache"
|
|
||||||
--
|
|
||||||
1.8.2.3
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:f397e09eec2ac12228659cd1b86ff93b501934bcedda6ca8e20557954694f21a
|
|
||||||
size 358200
|
|
17
cbrtl-ldbl-96.patch
Normal file
17
cbrtl-ldbl-96.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[BZ #15749]
|
||||||
|
* sysdeps/ieee754/ldbl-96/s_cbrtl.c (__cbrtl): Use fabsl instead
|
||||||
|
of fabs.
|
||||||
|
|
||||||
|
Index: glibc-2.17.90/sysdeps/ieee754/ldbl-96/s_cbrtl.c
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.17.90.orig/sysdeps/ieee754/ldbl-96/s_cbrtl.c
|
||||||
|
+++ glibc-2.17.90/sysdeps/ieee754/ldbl-96/s_cbrtl.c
|
||||||
|
@@ -45,7 +45,7 @@ __cbrtl (long double x)
|
||||||
|
int xe;
|
||||||
|
|
||||||
|
/* Reduce X. XM now is an range 1.0 to 0.5. */
|
||||||
|
- xm = __frexpl (fabs (x), &xe);
|
||||||
|
+ xm = __frexpl (fabsl (x), &xe);
|
||||||
|
|
||||||
|
/* If X is not finite or is null return it (with raising exceptions
|
||||||
|
if necessary.
|
@ -1,9 +1,3 @@
|
|||||||
Index: crypt_blowfish-1.2/compat-gensalt.c
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ crypt_blowfish-1.2/compat-gensalt.c
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+#include "wrapper-gensalt.c"
|
|
||||||
Index: crypt_blowfish-1.2/crypt_blowfish.c
|
Index: crypt_blowfish-1.2/crypt_blowfish.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- crypt_blowfish-1.2.orig/crypt_blowfish.c
|
--- crypt_blowfish-1.2.orig/crypt_blowfish.c
|
||||||
@ -144,7 +138,7 @@ Index: crypt_blowfish-1.2/wrapper-gensalt.c
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ crypt_blowfish-1.2/wrapper-gensalt.c
|
+++ crypt_blowfish-1.2/wrapper-gensalt.c
|
||||||
@@ -0,0 +1,124 @@
|
@@ -0,0 +1,113 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Written by Solar Designer <solar at openwall.com> in 2000-2011.
|
+ * Written by Solar Designer <solar at openwall.com> in 2000-2011.
|
||||||
+ * No copyright is claimed, and the software is hereby placed in the public
|
+ * No copyright is claimed, and the software is hereby placed in the public
|
||||||
@ -253,20 +247,9 @@ Index: crypt_blowfish-1.2/wrapper-gensalt.c
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#if defined(__GLIBC__) && defined(_LIBC)
|
+#if defined(__GLIBC__) && defined(_LIBC)
|
||||||
+#if IS_IN_libowcrypt
|
|
||||||
+weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn)
|
+weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn)
|
||||||
+weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra)
|
+weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra)
|
||||||
+weak_alias(__crypt_gensalt, crypt_gensalt)
|
+weak_alias(__crypt_gensalt, crypt_gensalt)
|
||||||
+#else
|
|
||||||
+#include <shlib-compat.h>
|
|
||||||
+#define ow_symbol(name) \
|
|
||||||
+ symbol_version (__##name, name, OW_CRYPT_1.0); \
|
|
||||||
+ hidden_ver (__##name, name)
|
|
||||||
+
|
|
||||||
+ow_symbol (crypt_gensalt)
|
|
||||||
+ow_symbol (crypt_gensalt_rn)
|
|
||||||
+ow_symbol (crypt_gensalt_ra)
|
|
||||||
+#endif
|
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
Index: crypt_blowfish-1.2/wrapper.c
|
Index: crypt_blowfish-1.2/wrapper.c
|
||||||
|
@ -1,191 +0,0 @@
|
|||||||
From 57847d6ed77fe969cc598e47452c76278a69f7bd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Schwab <schwab@suse.de>
|
|
||||||
Date: Mon, 21 Jan 2013 17:41:28 +0100
|
|
||||||
Subject: [PATCH] Fix parsing of numeric hosts in gethostbyname_r
|
|
||||||
|
|
||||||
[BZ #15014]
|
|
||||||
* nss/getXXbyYY_r.c (INTERNAL (REENTRANT_NAME))
|
|
||||||
[HANDLE_DIGITS_DOTS]: Set any_service when digits-dots parsing was
|
|
||||||
successful.
|
|
||||||
* nss/digits_dots.c (__nss_hostname_digits_dots): Remove
|
|
||||||
redundant variable declarations and reallocation of buffer when
|
|
||||||
parsing as IPv6 address. Always set NSS status when called from
|
|
||||||
reentrant functions. Use NETDB_INTERNAL instead of TRY_AGAIN when
|
|
||||||
buffer too small. Correct computation of needed size.
|
|
||||||
---
|
|
||||||
nss/digits_dots.c | 73 +++++++++++++++----------------------------------------
|
|
||||||
nss/getXXbyYY_r.c | 5 +++-
|
|
||||||
2 files changed, 24 insertions(+), 54 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/nss/digits_dots.c b/nss/digits_dots.c
|
|
||||||
index 2b86295..e007ef4 100644
|
|
||||||
--- a/nss/digits_dots.c
|
|
||||||
+++ b/nss/digits_dots.c
|
|
||||||
@@ -46,7 +46,10 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
|
|
||||||
{
|
|
||||||
if (h_errnop)
|
|
||||||
*h_errnop = NETDB_INTERNAL;
|
|
||||||
- *result = NULL;
|
|
||||||
+ if (buffer_size == NULL)
|
|
||||||
+ *status = NSS_STATUS_TRYAGAIN;
|
|
||||||
+ else
|
|
||||||
+ *result = NULL;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -83,14 +86,16 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
|
|
||||||
}
|
|
||||||
|
|
||||||
size_needed = (sizeof (*host_addr)
|
|
||||||
- + sizeof (*h_addr_ptrs) + strlen (name) + 1);
|
|
||||||
+ + sizeof (*h_addr_ptrs)
|
|
||||||
+ + sizeof (*h_alias_ptr) + strlen (name) + 1);
|
|
||||||
|
|
||||||
if (buffer_size == NULL)
|
|
||||||
{
|
|
||||||
if (buflen < size_needed)
|
|
||||||
{
|
|
||||||
+ *status = NSS_STATUS_TRYAGAIN;
|
|
||||||
if (h_errnop != NULL)
|
|
||||||
- *h_errnop = TRY_AGAIN;
|
|
||||||
+ *h_errnop = NETDB_INTERNAL;
|
|
||||||
__set_errno (ERANGE);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
@@ -109,7 +114,7 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
|
|
||||||
*buffer_size = 0;
|
|
||||||
__set_errno (save);
|
|
||||||
if (h_errnop != NULL)
|
|
||||||
- *h_errnop = TRY_AGAIN;
|
|
||||||
+ *h_errnop = NETDB_INTERNAL;
|
|
||||||
*result = NULL;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
@@ -149,7 +154,9 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
|
|
||||||
if (! ok)
|
|
||||||
{
|
|
||||||
*h_errnop = HOST_NOT_FOUND;
|
|
||||||
- if (buffer_size)
|
|
||||||
+ if (buffer_size == NULL)
|
|
||||||
+ *status = NSS_STATUS_NOTFOUND;
|
|
||||||
+ else
|
|
||||||
*result = NULL;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
@@ -190,7 +197,7 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
|
|
||||||
if (buffer_size == NULL)
|
|
||||||
*status = NSS_STATUS_SUCCESS;
|
|
||||||
else
|
|
||||||
- *result = resbuf;
|
|
||||||
+ *result = resbuf;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -201,15 +208,6 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
|
|
||||||
|
|
||||||
if ((isxdigit (name[0]) && strchr (name, ':') != NULL) || name[0] == ':')
|
|
||||||
{
|
|
||||||
- const char *cp;
|
|
||||||
- char *hostname;
|
|
||||||
- typedef unsigned char host_addr_t[16];
|
|
||||||
- host_addr_t *host_addr;
|
|
||||||
- typedef char *host_addr_list_t[2];
|
|
||||||
- host_addr_list_t *h_addr_ptrs;
|
|
||||||
- size_t size_needed;
|
|
||||||
- int addr_size;
|
|
||||||
-
|
|
||||||
switch (af)
|
|
||||||
{
|
|
||||||
default:
|
|
||||||
@@ -225,7 +223,10 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
|
|
||||||
/* This is not possible. We cannot represent an IPv6 address
|
|
||||||
in an `struct in_addr' variable. */
|
|
||||||
*h_errnop = HOST_NOT_FOUND;
|
|
||||||
- *result = NULL;
|
|
||||||
+ if (buffer_size == NULL)
|
|
||||||
+ *status = NSS_STATUS_NOTFOUND;
|
|
||||||
+ else
|
|
||||||
+ *result = NULL;
|
|
||||||
goto done;
|
|
||||||
|
|
||||||
case AF_INET6:
|
|
||||||
@@ -233,42 +234,6 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
- size_needed = (sizeof (*host_addr)
|
|
||||||
- + sizeof (*h_addr_ptrs) + strlen (name) + 1);
|
|
||||||
-
|
|
||||||
- if (buffer_size == NULL && buflen < size_needed)
|
|
||||||
- {
|
|
||||||
- if (h_errnop != NULL)
|
|
||||||
- *h_errnop = TRY_AGAIN;
|
|
||||||
- __set_errno (ERANGE);
|
|
||||||
- goto done;
|
|
||||||
- }
|
|
||||||
- else if (buffer_size != NULL && *buffer_size < size_needed)
|
|
||||||
- {
|
|
||||||
- char *new_buf;
|
|
||||||
- *buffer_size = size_needed;
|
|
||||||
- new_buf = realloc (*buffer, *buffer_size);
|
|
||||||
-
|
|
||||||
- if (new_buf == NULL)
|
|
||||||
- {
|
|
||||||
- save = errno;
|
|
||||||
- free (*buffer);
|
|
||||||
- __set_errno (save);
|
|
||||||
- *buffer = NULL;
|
|
||||||
- *buffer_size = 0;
|
|
||||||
- *result = NULL;
|
|
||||||
- goto done;
|
|
||||||
- }
|
|
||||||
- *buffer = new_buf;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- memset (*buffer, '\0', size_needed);
|
|
||||||
-
|
|
||||||
- host_addr = (host_addr_t *) *buffer;
|
|
||||||
- h_addr_ptrs = (host_addr_list_t *)
|
|
||||||
- ((char *) host_addr + sizeof (*host_addr));
|
|
||||||
- hostname = (char *) h_addr_ptrs + sizeof (*h_addr_ptrs);
|
|
||||||
-
|
|
||||||
for (cp = name;; ++cp)
|
|
||||||
{
|
|
||||||
if (!*cp)
|
|
||||||
@@ -281,7 +246,9 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
|
|
||||||
if (inet_pton (AF_INET6, name, host_addr) <= 0)
|
|
||||||
{
|
|
||||||
*h_errnop = HOST_NOT_FOUND;
|
|
||||||
- if (buffer_size)
|
|
||||||
+ if (buffer_size == NULL)
|
|
||||||
+ *status = NSS_STATUS_NOTFOUND;
|
|
||||||
+ else
|
|
||||||
*result = NULL;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c
|
|
||||||
index 1067744..44d00f4 100644
|
|
||||||
--- a/nss/getXXbyYY_r.c
|
|
||||||
+++ b/nss/getXXbyYY_r.c
|
|
||||||
@@ -179,6 +179,9 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
|
|
||||||
case -1:
|
|
||||||
return errno;
|
|
||||||
case 1:
|
|
||||||
+#ifdef NEED_H_ERRNO
|
|
||||||
+ any_service = true;
|
|
||||||
+#endif
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -288,7 +291,7 @@ done:
|
|
||||||
/* Either we failed to lookup the functions or the functions themselves
|
|
||||||
had a system error. Set NETDB_INTERNAL here to let the caller know
|
|
||||||
that the errno may have the real reason for failure. */
|
|
||||||
- *h_errnop = NETDB_INTERNAL;
|
|
||||||
+ *h_errnop = NETDB_INTERNAL;
|
|
||||||
else if (status != NSS_STATUS_SUCCESS && !any_service)
|
|
||||||
/* We were not able to use any service. */
|
|
||||||
*h_errnop = NO_RECOVERY;
|
|
||||||
--
|
|
||||||
1.8.2.3
|
|
||||||
|
|
@ -1,241 +0,0 @@
|
|||||||
2013-07-21 Siddhesh Poyarekar <siddhesh@redhat.com>
|
|
||||||
Andreas Schwab <schwab@suse.de>
|
|
||||||
Roland McGrath <roland@hack.frob.com>
|
|
||||||
Joseph Myers <joseph@codesourcery.com>
|
|
||||||
Carlos O'Donell <carlos@redhat.com>
|
|
||||||
|
|
||||||
[BZ #15755]
|
|
||||||
* config.h.in: Define HAVE_PT_CHOWN.
|
|
||||||
* config.make.in (build-pt-chown): New variable.
|
|
||||||
* configure.in (--enable-pt_chown): New configure option.
|
|
||||||
* configure: Regenerate.
|
|
||||||
* login/Makefile: Include Makeconfig. Build pt_chown only if
|
|
||||||
build-pt-chown is enabled.
|
|
||||||
* sysdeps/unix/grantpt.c (grantpt) [HAVE_PT_CHOWN]: Spawn
|
|
||||||
pt_chown to fix pty ownership.
|
|
||||||
* sysdeps/unix/sysv/linux/grantpt.c [HAVE_PT_CHOWN]: Define
|
|
||||||
CLOSE_ALL_FDS.
|
|
||||||
* manual/install.texi (Configuring and compiling): Mention
|
|
||||||
--enable-pt_chown. Add @findex for grantpt.
|
|
||||||
* INSTALL: Regenerate.
|
|
||||||
|
|
||||||
Index: glibc-2.17/INSTALL
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/INSTALL
|
|
||||||
+++ glibc-2.17/INSTALL
|
|
||||||
@@ -128,6 +128,18 @@ will be used, and CFLAGS sets optimizati
|
|
||||||
this can be prevented though there generally is no reason since it
|
|
||||||
creates compatibility problems.
|
|
||||||
|
|
||||||
+`--enable-pt_chown'
|
|
||||||
+ The file `pt_chown' is a helper binary for `grantpt' (*note
|
|
||||||
+ Pseudo-Terminals: Allocation.) that is installed setuid root to
|
|
||||||
+ fix up pseudo-terminal ownership. It is not built by default
|
|
||||||
+ because systems using the Linux kernel are commonly built with the
|
|
||||||
+ `devpts' filesystem enabled and mounted at `/dev/pts', which
|
|
||||||
+ manages pseudo-terminal ownership automatically. By using
|
|
||||||
+ `--enable-pt_chown', you may build `pt_chown' and install it
|
|
||||||
+ setuid and owned by `root'. The use of `pt_chown' introduces
|
|
||||||
+ additional security risks to the system and you should enable it
|
|
||||||
+ only if you understand and accept those risks.
|
|
||||||
+
|
|
||||||
`--build=BUILD-SYSTEM'
|
|
||||||
`--host=HOST-SYSTEM'
|
|
||||||
These options are for cross-compiling. If you specify both
|
|
||||||
Index: glibc-2.17/config.h.in
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/config.h.in
|
|
||||||
+++ glibc-2.17/config.h.in
|
|
||||||
@@ -232,4 +232,7 @@
|
|
||||||
/* The ARM hard-float ABI is being used. */
|
|
||||||
#undef HAVE_ARM_PCS_VFP
|
|
||||||
|
|
||||||
+/* The pt_chown binary is being built and used by grantpt. */
|
|
||||||
+#undef HAVE_PT_CHOWN
|
|
||||||
+
|
|
||||||
#endif
|
|
||||||
Index: glibc-2.17/config.make.in
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/config.make.in
|
|
||||||
+++ glibc-2.17/config.make.in
|
|
||||||
@@ -102,6 +102,7 @@ force-install = @force_install@
|
|
||||||
link-obsolete-rpc = @link_obsolete_rpc@
|
|
||||||
build-nscd = @build_nscd@
|
|
||||||
use-nscd = @use_nscd@
|
|
||||||
+build-pt-chown = @build_pt_chown@
|
|
||||||
|
|
||||||
# Build tools.
|
|
||||||
CC = @CC@
|
|
||||||
Index: glibc-2.17/configure
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/configure
|
|
||||||
+++ glibc-2.17/configure
|
|
||||||
@@ -654,6 +654,7 @@ multi_arch
|
|
||||||
base_machine
|
|
||||||
add_on_subdirs
|
|
||||||
add_ons
|
|
||||||
+build_pt_chown
|
|
||||||
build_nscd
|
|
||||||
link_obsolete_rpc
|
|
||||||
libc_cv_nss_crypt
|
|
||||||
@@ -760,6 +761,7 @@ enable_obsolete_rpc
|
|
||||||
enable_systemtap
|
|
||||||
enable_build_nscd
|
|
||||||
enable_nscd
|
|
||||||
+enable_pt_chown
|
|
||||||
with_cpu
|
|
||||||
'
|
|
||||||
ac_precious_vars='build_alias
|
|
||||||
@@ -1420,6 +1422,7 @@ Optional Features:
|
|
||||||
--enable-systemtap enable systemtap static probe points [default=no]
|
|
||||||
--disable-build-nscd disable building and installing the nscd daemon
|
|
||||||
--disable-nscd library functions will not contact the nscd daemon
|
|
||||||
+ --enable-pt_chown Enable building and installing pt_chown
|
|
||||||
|
|
||||||
Optional Packages:
|
|
||||||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
|
||||||
@@ -3935,6 +3938,19 @@ else
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
+# Check whether --enable-pt_chown was given.
|
|
||||||
+if test "${enable_pt_chown+set}" = set; then :
|
|
||||||
+ enableval=$enable_pt_chown; build_pt_chown=$enableval
|
|
||||||
+else
|
|
||||||
+ build_pt_chown=no
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+if test $build_pt_chown = yes; then
|
|
||||||
+ $as_echo "#define HAVE_PT_CHOWN 1" >>confdefs.h
|
|
||||||
+
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
# The way shlib-versions is used to generate soversions.mk uses a
|
|
||||||
# fairly simplistic model for name recognition that can't distinguish
|
|
||||||
# i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
|
|
||||||
Index: glibc-2.17/configure.in
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/configure.in
|
|
||||||
+++ glibc-2.17/configure.in
|
|
||||||
@@ -315,6 +315,16 @@ AC_ARG_ENABLE([nscd],
|
|
||||||
[use_nscd=$enableval],
|
|
||||||
[use_nscd=yes])
|
|
||||||
|
|
||||||
+AC_ARG_ENABLE([pt_chown],
|
|
||||||
+ [AS_HELP_STRING([--enable-pt_chown],
|
|
||||||
+ [Enable building and installing pt_chown])],
|
|
||||||
+ [build_pt_chown=$enableval],
|
|
||||||
+ [build_pt_chown=no])
|
|
||||||
+AC_SUBST(build_pt_chown)
|
|
||||||
+if test $build_pt_chown = yes; then
|
|
||||||
+ AC_DEFINE(HAVE_PT_CHOWN)
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
# The way shlib-versions is used to generate soversions.mk uses a
|
|
||||||
# fairly simplistic model for name recognition that can't distinguish
|
|
||||||
# i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
|
|
||||||
Index: glibc-2.17/login/Makefile
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/login/Makefile
|
|
||||||
+++ glibc-2.17/login/Makefile
|
|
||||||
@@ -29,9 +29,15 @@ routines := getutent getutent_r getutid
|
|
||||||
|
|
||||||
CFLAGS-grantpt.c = -DLIBEXECDIR='"$(libexecdir)"'
|
|
||||||
|
|
||||||
-others = utmpdump pt_chown
|
|
||||||
+others = utmpdump
|
|
||||||
+
|
|
||||||
+include ../Makeconfig
|
|
||||||
+
|
|
||||||
+ifeq (yes,$(build-pt-chown))
|
|
||||||
+others += pt_chown
|
|
||||||
others-pie = pt_chown
|
|
||||||
install-others-programs = $(inst_libexecdir)/pt_chown
|
|
||||||
+endif
|
|
||||||
|
|
||||||
subdir-dirs = programs
|
|
||||||
vpath %.c programs
|
|
||||||
Index: glibc-2.17/manual/install.texi
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/manual/install.texi
|
|
||||||
+++ glibc-2.17/manual/install.texi
|
|
||||||
@@ -155,6 +155,20 @@ if the used tools support it. By using
|
|
||||||
prevented though there generally is no reason since it creates
|
|
||||||
compatibility problems.
|
|
||||||
|
|
||||||
+@pindex pt_chown
|
|
||||||
+@findex grantpt
|
|
||||||
+@item --enable-pt_chown
|
|
||||||
+The file @file{pt_chown} is a helper binary for @code{grantpt}
|
|
||||||
+(@pxref{Allocation, Pseudo-Terminals}) that is installed setuid root to
|
|
||||||
+fix up pseudo-terminal ownership. It is not built by default because
|
|
||||||
+systems using the Linux kernel are commonly built with the @code{devpts}
|
|
||||||
+filesystem enabled and mounted at @file{/dev/pts}, which manages
|
|
||||||
+pseudo-terminal ownership automatically. By using
|
|
||||||
+@samp{--enable-pt_chown}, you may build @file{pt_chown} and install it
|
|
||||||
+setuid and owned by @code{root}. The use of @file{pt_chown} introduces
|
|
||||||
+additional security risks to the system and you should enable it only if
|
|
||||||
+you understand and accept those risks.
|
|
||||||
+
|
|
||||||
@item --build=@var{build-system}
|
|
||||||
@itemx --host=@var{host-system}
|
|
||||||
These options are for cross-compiling. If you specify both options and
|
|
||||||
Index: glibc-2.17/sysdeps/unix/grantpt.c
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/unix/grantpt.c
|
|
||||||
+++ glibc-2.17/sysdeps/unix/grantpt.c
|
|
||||||
@@ -173,9 +173,10 @@ grantpt (int fd)
|
|
||||||
retval = 0;
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
- /* We have to use the helper program. */
|
|
||||||
+ /* We have to use the helper program if it is available. */
|
|
||||||
helper:;
|
|
||||||
|
|
||||||
+#ifdef HAVE_PT_CHOWN
|
|
||||||
pid_t pid = __fork ();
|
|
||||||
if (pid == -1)
|
|
||||||
goto cleanup;
|
|
||||||
@@ -190,9 +191,9 @@ grantpt (int fd)
|
|
||||||
if (__dup2 (fd, PTY_FILENO) < 0)
|
|
||||||
_exit (FAIL_EBADF);
|
|
||||||
|
|
||||||
-#ifdef CLOSE_ALL_FDS
|
|
||||||
+# ifdef CLOSE_ALL_FDS
|
|
||||||
CLOSE_ALL_FDS ();
|
|
||||||
-#endif
|
|
||||||
+# endif
|
|
||||||
|
|
||||||
execle (_PATH_PT_CHOWN, basename (_PATH_PT_CHOWN), NULL, NULL);
|
|
||||||
_exit (FAIL_EXEC);
|
|
||||||
@@ -231,6 +232,7 @@ grantpt (int fd)
|
|
||||||
assert(! "getpt: internal error: invalid exit code from pt_chown");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
if (buf != _buf)
|
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/grantpt.c
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/unix/sysv/linux/grantpt.c
|
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/grantpt.c
|
|
||||||
@@ -11,7 +11,7 @@
|
|
||||||
|
|
||||||
#include "pty-private.h"
|
|
||||||
|
|
||||||
-
|
|
||||||
+#if HAVE_PT_CHOWN
|
|
||||||
/* Close all file descriptors except the one specified. */
|
|
||||||
static void
|
|
||||||
close_all_fds (void)
|
|
||||||
@@ -38,6 +38,7 @@ close_all_fds (void)
|
|
||||||
__dup2 (STDOUT_FILENO, STDERR_FILENO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-#define CLOSE_ALL_FDS() close_all_fds()
|
|
||||||
+# define CLOSE_ALL_FDS() close_all_fds()
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#include <sysdeps/unix/grantpt.c>
|
|
@ -1,8 +1,8 @@
|
|||||||
Index: glibc-2.16.90/sysdeps/posix/getaddrinfo.c
|
Index: glibc-2.17.90/sysdeps/posix/getaddrinfo.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.90.orig/sysdeps/posix/getaddrinfo.c 2012-11-20 03:45:45.000000000 +0100
|
--- glibc-2.17.90.orig/sysdeps/posix/getaddrinfo.c
|
||||||
+++ glibc-2.16.90/sysdeps/posix/getaddrinfo.c 2012-11-23 15:32:33.000000000 +0100
|
+++ glibc-2.17.90/sysdeps/posix/getaddrinfo.c
|
||||||
@@ -269,7 +269,7 @@ extern service_user *__nss_hosts_databas
|
@@ -270,7 +270,7 @@ extern service_user *__nss_hosts_databas
|
||||||
static int
|
static int
|
||||||
gaih_inet (const char *name, const struct gaih_service *service,
|
gaih_inet (const char *name, const struct gaih_service *service,
|
||||||
const struct addrinfo *req, struct addrinfo **pai,
|
const struct addrinfo *req, struct addrinfo **pai,
|
||||||
@ -11,7 +11,7 @@ Index: glibc-2.16.90/sysdeps/posix/getaddrinfo.c
|
|||||||
{
|
{
|
||||||
const struct gaih_typeproto *tp = gaih_inet_typeproto;
|
const struct gaih_typeproto *tp = gaih_inet_typeproto;
|
||||||
struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv;
|
struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv;
|
||||||
@@ -839,7 +839,10 @@ gaih_inet (const char *name, const struc
|
@@ -840,7 +840,10 @@ gaih_inet (const char *name, const struc
|
||||||
if (req->ai_family == PF_UNSPEC)
|
if (req->ai_family == PF_UNSPEC)
|
||||||
fct4 = __nss_lookup_function (nip, "gethostbyname4_r");
|
fct4 = __nss_lookup_function (nip, "gethostbyname4_r");
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ Index: glibc-2.16.90/sysdeps/posix/getaddrinfo.c
|
|||||||
{
|
{
|
||||||
int herrno;
|
int herrno;
|
||||||
|
|
||||||
@@ -942,7 +945,7 @@ gaih_inet (const char *name, const struc
|
@@ -943,7 +946,7 @@ gaih_inet (const char *name, const struc
|
||||||
if (fct != NULL)
|
if (fct != NULL)
|
||||||
{
|
{
|
||||||
if (req->ai_family == AF_INET6
|
if (req->ai_family == AF_INET6
|
||||||
@ -32,7 +32,7 @@ Index: glibc-2.16.90/sysdeps/posix/getaddrinfo.c
|
|||||||
{
|
{
|
||||||
gethosts (AF_INET6, struct in6_addr);
|
gethosts (AF_INET6, struct in6_addr);
|
||||||
no_inet6_data = no_data;
|
no_inet6_data = no_data;
|
||||||
@@ -2462,7 +2465,11 @@ getaddrinfo (const char *name, const cha
|
@@ -2471,7 +2474,11 @@ getaddrinfo (const char *name, const cha
|
||||||
if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET
|
if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET
|
||||||
|| hints->ai_family == AF_INET6)
|
|| hints->ai_family == AF_INET6)
|
||||||
{
|
{
|
||||||
|
@ -1,62 +0,0 @@
|
|||||||
From 1cef1b19089528db11f221e938f60b9b048945d7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Schwab <schwab@suse.de>
|
|
||||||
Date: Thu, 21 Mar 2013 15:50:27 +0100
|
|
||||||
Subject: [PATCH] Fix stack overflow in getaddrinfo with many results
|
|
||||||
|
|
||||||
[BZ #15330]
|
|
||||||
* sysdeps/posix/getaddrinfo.c (getaddrinfo): Allocate results and
|
|
||||||
order arrays from heap if bigger than alloca cutoff.
|
|
||||||
|
|
||||||
---
|
|
||||||
ChangeLog | 6 ++++++
|
|
||||||
NEWS | 5 ++++-
|
|
||||||
sysdeps/posix/getaddrinfo.c | 23 +++++++++++++++++++++--
|
|
||||||
3 files changed, 31 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
|
|
||||||
index d95c2d1..2309281 100644
|
|
||||||
--- a/sysdeps/posix/getaddrinfo.c
|
|
||||||
+++ b/sysdeps/posix/getaddrinfo.c
|
|
||||||
@@ -2489,11 +2489,27 @@ getaddrinfo (const char *name, const char *service,
|
|
||||||
__typeof (once) old_once = once;
|
|
||||||
__libc_once (once, gaiconf_init);
|
|
||||||
/* Sort results according to RFC 3484. */
|
|
||||||
- struct sort_result results[nresults];
|
|
||||||
- size_t order[nresults];
|
|
||||||
+ struct sort_result *results;
|
|
||||||
+ size_t *order;
|
|
||||||
struct addrinfo *q;
|
|
||||||
struct addrinfo *last = NULL;
|
|
||||||
char *canonname = NULL;
|
|
||||||
+ bool malloc_results;
|
|
||||||
+
|
|
||||||
+ malloc_results
|
|
||||||
+ = !__libc_use_alloca (nresults * (sizeof (*results) + sizeof (size_t)));
|
|
||||||
+ if (malloc_results)
|
|
||||||
+ {
|
|
||||||
+ results = malloc (nresults * (sizeof (*results) + sizeof (size_t)));
|
|
||||||
+ if (results == NULL)
|
|
||||||
+ {
|
|
||||||
+ __free_in6ai (in6ai);
|
|
||||||
+ return EAI_MEMORY;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ results = alloca (nresults * (sizeof (*results) + sizeof (size_t)));
|
|
||||||
+ order = (size_t *) (results + nresults);
|
|
||||||
|
|
||||||
/* Now we definitely need the interface information. */
|
|
||||||
if (! check_pf_called)
|
|
||||||
@@ -2664,6 +2680,9 @@ getaddrinfo (const char *name, const char *service,
|
|
||||||
|
|
||||||
/* Fill in the canonical name into the new first entry. */
|
|
||||||
p->ai_canonname = canonname;
|
|
||||||
+
|
|
||||||
+ if (malloc_results)
|
|
||||||
+ free (results);
|
|
||||||
}
|
|
||||||
|
|
||||||
__free_in6ai (in6ai);
|
|
||||||
--
|
|
||||||
1.8.2.3
|
|
||||||
|
|
@ -1,23 +1,22 @@
|
|||||||
Index: glibc-2.17/Versions.def
|
Index: glibc-2.17.90/Versions.def
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/Versions.def
|
--- glibc-2.17.90.orig/Versions.def
|
||||||
+++ glibc-2.17/Versions.def
|
+++ glibc-2.17.90/Versions.def
|
||||||
@@ -42,6 +42,10 @@ libc {
|
@@ -44,6 +44,9 @@ libc {
|
||||||
}
|
|
||||||
libcrypt {
|
libcrypt {
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
+ OW_CRYPT_1.0
|
}
|
||||||
+}
|
|
||||||
+libowcrypt {
|
+libowcrypt {
|
||||||
+ OW_CRYPT_1.0
|
+ OW_CRYPT_1.0
|
||||||
}
|
+}
|
||||||
libdl {
|
libdl {
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
Index: glibc-2.17/crypt/Makefile
|
GLIBC_2.1
|
||||||
|
Index: glibc-2.17.90/crypt/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/crypt/Makefile
|
--- glibc-2.17.90.orig/crypt/Makefile
|
||||||
+++ glibc-2.17/crypt/Makefile
|
+++ glibc-2.17.90/crypt/Makefile
|
||||||
@@ -21,14 +21,19 @@
|
@@ -21,14 +21,18 @@
|
||||||
subdir := crypt
|
subdir := crypt
|
||||||
|
|
||||||
headers := crypt.h
|
headers := crypt.h
|
||||||
@ -31,40 +30,30 @@ Index: glibc-2.17/crypt/Makefile
|
|||||||
crypt_util
|
crypt_util
|
||||||
|
|
||||||
-tests := cert md5c-test sha256c-test sha512c-test badsalttest
|
-tests := cert md5c-test sha256c-test sha512c-test badsalttest
|
||||||
+libcrypt-routines += crypt_blowfish x86 wrapper crypt_gensalt compat-gensalt
|
+libcrypt-routines += crypt_blowfish x86 wrapper
|
||||||
+libcrypt-shared-only-routines = crypt_gensalt compat-gensalt
|
|
||||||
+libowcrypt-routines := crypt_gensalt wrapper-gensalt
|
+libowcrypt-routines := crypt_gensalt wrapper-gensalt
|
||||||
+
|
+
|
||||||
+tests := cert md5c-test sha256c-test sha512c-test
|
+tests := cert md5c-test sha256c-test sha512c-test
|
||||||
|
|
||||||
include ../Makeconfig
|
include ../Makeconfig
|
||||||
|
|
||||||
@@ -77,3 +82,4 @@ endif
|
Index: glibc-2.17.90/crypt/Versions
|
||||||
# This ensures they will load libc.so for needed symbols if loaded by
|
|
||||||
# a statically-linked program that hasn't already loaded it.
|
|
||||||
$(objpfx)libcrypt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
|
|
||||||
+$(objpfx)libowcrypt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
|
|
||||||
Index: glibc-2.17/crypt/Versions
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/crypt/Versions
|
--- glibc-2.17.90.orig/crypt/Versions
|
||||||
+++ glibc-2.17/crypt/Versions
|
+++ glibc-2.17.90/crypt/Versions
|
||||||
@@ -2,4 +2,12 @@ libcrypt {
|
@@ -3,3 +3,8 @@ libcrypt {
|
||||||
GLIBC_2.0 {
|
|
||||||
crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r;
|
crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r;
|
||||||
}
|
}
|
||||||
+ OW_CRYPT_1.0 {
|
}
|
||||||
+ crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+libowcrypt {
|
+libowcrypt {
|
||||||
+ OW_CRYPT_1.0 {
|
+ OW_CRYPT_1.0 {
|
||||||
+ crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra;
|
+ crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra;
|
||||||
+ }
|
+ }
|
||||||
}
|
+}
|
||||||
Index: glibc-2.17/crypt/crypt-entry.c
|
Index: glibc-2.17.90/crypt/crypt-entry.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/crypt/crypt-entry.c
|
--- glibc-2.17.90.orig/crypt/crypt-entry.c
|
||||||
+++ glibc-2.17/crypt/crypt-entry.c
|
+++ glibc-2.17.90/crypt/crypt-entry.c
|
||||||
@@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar;
|
@@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -87,309 +76,140 @@ Index: glibc-2.17/crypt/crypt-entry.c
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
+#endif
|
+#endif
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.17
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.0
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.4
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.0
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.4
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.0
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
|
|
||||||
@@ -9,3 +9,8 @@ GLIBC_2.0
|
|
||||||
setkey_r F
|
|
||||||
_gp_disp
|
|
||||||
_gp_disp A
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.0
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.0
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.0
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.12
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.12
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.12
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/shlib-versions
|
Index: glibc-2.17.90/shlib-versions
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/shlib-versions
|
--- glibc-2.17.90.orig/shlib-versions
|
||||||
+++ glibc-2.17/shlib-versions
|
+++ glibc-2.17.90/shlib-versions
|
||||||
@@ -92,6 +92,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_
|
@@ -92,6 +92,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_
|
||||||
|
|
||||||
# This defines the shared library version numbers we will install.
|
# This defines the shared library version numbers we will install.
|
||||||
@ -398,230 +218,100 @@ Index: glibc-2.17/shlib-versions
|
|||||||
|
|
||||||
# The gross patch for programs assuming broken locale implementations.
|
# The gross patch for programs assuming broken locale implementations.
|
||||||
sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2
|
sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.0
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.0
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.3
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.0
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.2
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.0
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.0
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.0
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.2.5
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist
|
Index: glibc-2.17.90/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist
|
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libcrypt.abilist
|
|
||||||
@@ -7,3 +7,8 @@ GLIBC_2.16
|
|
||||||
fcrypt F
|
|
||||||
setkey F
|
|
||||||
setkey_r F
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist
|
+++ glibc-2.17.90/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:d0ad63189c3d0799ee671b0b565f8d113c43d1759894c9002ba58bf212af8abf
|
|
||||||
size 11173392
|
|
3
glibc-2.18.tar.xz
Normal file
3
glibc-2.18.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:2cb4e1e381928f1e5e55e71ab1ba8e0ea7ede75ff9709770435bfd018ea257a3
|
||||||
|
size 11150148
|
@ -2,11 +2,11 @@ For details see:
|
|||||||
http://sourceware.org/bugzilla/show_bug.cgi?id=5379
|
http://sourceware.org/bugzilla/show_bug.cgi?id=5379
|
||||||
|
|
||||||
|
|
||||||
Index: glibc-2.15/sunrpc/clnt_udp.c
|
Index: glibc-2.17.90/sunrpc/clnt_udp.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.orig/sunrpc/clnt_udp.c
|
--- glibc-2.17.90.orig/sunrpc/clnt_udp.c
|
||||||
+++ glibc-2.15/sunrpc/clnt_udp.c
|
+++ glibc-2.17.90/sunrpc/clnt_udp.c
|
||||||
@@ -307,6 +307,7 @@ clntudp_call (cl, proc, xargs, argsp, xr
|
@@ -308,6 +308,7 @@ clntudp_call (cl, proc, xargs, argsp, xr
|
||||||
XDR *xdrs;
|
XDR *xdrs;
|
||||||
int outlen = 0;
|
int outlen = 0;
|
||||||
int inlen;
|
int inlen;
|
||||||
@ -14,7 +14,7 @@ Index: glibc-2.15/sunrpc/clnt_udp.c
|
|||||||
socklen_t fromlen;
|
socklen_t fromlen;
|
||||||
struct pollfd fd;
|
struct pollfd fd;
|
||||||
int milliseconds = (cu->cu_wait.tv_sec * 1000) +
|
int milliseconds = (cu->cu_wait.tv_sec * 1000) +
|
||||||
@@ -377,37 +378,36 @@ send_again:
|
@@ -378,37 +379,36 @@ send_again:
|
||||||
anyup = 0;
|
anyup = 0;
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
|
@ -3,10 +3,10 @@ Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de
|
|||||||
|
|
||||||
- Make --no-archive default for localedef
|
- Make --no-archive default for localedef
|
||||||
|
|
||||||
Index: glibc-2.15.90/locale/programs/localedef.c
|
Index: glibc-2.17.90/locale/programs/localedef.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/locale/programs/localedef.c
|
--- glibc-2.17.90.orig/locale/programs/localedef.c
|
||||||
+++ glibc-2.15.90/locale/programs/localedef.c
|
+++ glibc-2.17.90/locale/programs/localedef.c
|
||||||
@@ -81,7 +81,7 @@ const char *alias_file;
|
@@ -81,7 +81,7 @@ const char *alias_file;
|
||||||
static struct localedef_t *locales;
|
static struct localedef_t *locales;
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ Index: glibc-2.15.90/locale/programs/localedef.c
|
|||||||
|
|
||||||
/* Definitions of arguments for argp functions. */
|
/* Definitions of arguments for argp functions. */
|
||||||
static const struct argp_option options[] =
|
static const struct argp_option options[] =
|
||||||
@@ -133,6 +134,8 @@ static const struct argp_option options[
|
@@ -134,6 +135,8 @@ static const struct argp_option options[
|
||||||
N_("Suppress warnings and information messages") },
|
N_("Suppress warnings and information messages") },
|
||||||
{ "verbose", 'v', NULL, 0, N_("Print more messages") },
|
{ "verbose", 'v', NULL, 0, N_("Print more messages") },
|
||||||
{ NULL, 0, NULL, 0, N_("Archive control:") },
|
{ NULL, 0, NULL, 0, N_("Archive control:") },
|
||||||
@ -33,7 +33,7 @@ Index: glibc-2.15.90/locale/programs/localedef.c
|
|||||||
{ "no-archive", OPT_NO_ARCHIVE, NULL, 0,
|
{ "no-archive", OPT_NO_ARCHIVE, NULL, 0,
|
||||||
N_("Don't add new data to archive") },
|
N_("Don't add new data to archive") },
|
||||||
{ "add-to-archive", OPT_ADD_TO_ARCHIVE, NULL, 0,
|
{ "add-to-archive", OPT_ADD_TO_ARCHIVE, NULL, 0,
|
||||||
@@ -310,6 +313,9 @@ parse_opt (int key, char *arg, struct ar
|
@@ -311,6 +314,9 @@ parse_opt (int key, char *arg, struct ar
|
||||||
case OPT_PREFIX:
|
case OPT_PREFIX:
|
||||||
output_prefix = arg;
|
output_prefix = arg;
|
||||||
break;
|
break;
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
* nscd/nscd.h: Move persistent storage back to /var/run/nscd
|
* nscd/nscd.h: Move persistent storage back to /var/run/nscd
|
||||||
|
|
||||||
Index: glibc-2.15.90/nscd/nscd.h
|
Index: glibc-2.17.90/nscd/nscd.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/nscd/nscd.h
|
--- glibc-2.17.90.orig/nscd/nscd.h
|
||||||
+++ glibc-2.15.90/nscd/nscd.h
|
+++ glibc-2.17.90/nscd/nscd.h
|
||||||
@@ -112,11 +112,11 @@ struct database_dyn
|
@@ -112,11 +112,11 @@ struct database_dyn
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: glibc-2.15.90/intl/loadmsgcat.c
|
Index: glibc-2.17.90/intl/loadmsgcat.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/intl/loadmsgcat.c
|
--- glibc-2.17.90.orig/intl/loadmsgcat.c
|
||||||
+++ glibc-2.15.90/intl/loadmsgcat.c
|
+++ glibc-2.17.90/intl/loadmsgcat.c
|
||||||
@@ -805,8 +805,52 @@ _nl_load_domain (domain_file, domainbind
|
@@ -806,8 +806,52 @@ _nl_load_domain (domain_file, domainbind
|
||||||
if (domain_file->filename == NULL)
|
if (domain_file->filename == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: glibc-2.16.90/elf/rtld.c
|
Index: glibc-2.17.90/elf/rtld.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.90.orig/elf/rtld.c
|
--- glibc-2.17.90.orig/elf/rtld.c
|
||||||
+++ glibc-2.16.90/elf/rtld.c
|
+++ glibc-2.17.90/elf/rtld.c
|
||||||
@@ -1717,6 +1717,53 @@ ERROR: ld.so: object '%s' cannot be load
|
@@ -1717,6 +1717,53 @@ ERROR: ld.so: object '%s' cannot be load
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:fe966fc1d1082da024fda16d4ad1e8e2b73f30d646701d24a27882ec653b5807
|
oid sha256:10f1db566a96ef0e012c79fc18844593f56424a1e5a7d1b3f6521b2fdc1753e9
|
||||||
size 329247
|
size 329284
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: glibc-2.15/localedata/locales/zh_TW
|
Index: glibc-2.17.90/localedata/locales/zh_TW
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.orig/localedata/locales/zh_TW
|
--- glibc-2.17.90.orig/localedata/locales/zh_TW
|
||||||
+++ glibc-2.15/localedata/locales/zh_TW
|
+++ glibc-2.17.90/localedata/locales/zh_TW
|
||||||
@@ -1,7 +1,7 @@
|
@@ -1,7 +1,7 @@
|
||||||
comment_char %
|
comment_char %
|
||||||
escape_char /
|
escape_char /
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: glibc-2.15.90/intl/locale.alias
|
Index: glibc-2.17.90/intl/locale.alias
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/intl/locale.alias
|
--- glibc-2.17.90.orig/intl/locale.alias
|
||||||
+++ glibc-2.15.90/intl/locale.alias
|
+++ glibc-2.17.90/intl/locale.alias
|
||||||
@@ -56,8 +56,6 @@ korean ko_KR.eucKR
|
@@ -56,8 +56,6 @@ korean ko_KR.eucKR
|
||||||
korean.euc ko_KR.eucKR
|
korean.euc ko_KR.eucKR
|
||||||
ko_KR ko_KR.eucKR
|
ko_KR ko_KR.eucKR
|
||||||
@ -11,10 +11,23 @@ Index: glibc-2.15.90/intl/locale.alias
|
|||||||
norwegian nb_NO.ISO-8859-1
|
norwegian nb_NO.ISO-8859-1
|
||||||
nynorsk nn_NO.ISO-8859-1
|
nynorsk nn_NO.ISO-8859-1
|
||||||
polish pl_PL.ISO-8859-2
|
polish pl_PL.ISO-8859-2
|
||||||
Index: glibc-2.15.90/localedata/locales/no_NO
|
Index: glibc-2.17.90/localedata/SUPPORTED
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.17.90.orig/localedata/SUPPORTED
|
||||||
|
+++ glibc-2.17.90/localedata/SUPPORTED
|
||||||
|
@@ -324,6 +324,8 @@ nl_NL/ISO-8859-1 \
|
||||||
|
nl_NL@euro/ISO-8859-15 \
|
||||||
|
nn_NO.UTF-8/UTF-8 \
|
||||||
|
nn_NO/ISO-8859-1 \
|
||||||
|
+no_NO.UTF-8/UTF-8 \
|
||||||
|
+no_NO/ISO-8859-1 \
|
||||||
|
nr_ZA/UTF-8 \
|
||||||
|
nso_ZA/UTF-8 \
|
||||||
|
oc_FR.UTF-8/UTF-8 \
|
||||||
|
Index: glibc-2.17.90/localedata/locales/no_NO
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.15.90/localedata/locales/no_NO
|
+++ glibc-2.17.90/localedata/locales/no_NO
|
||||||
@@ -0,0 +1,69 @@
|
@@ -0,0 +1,69 @@
|
||||||
+escape_char /
|
+escape_char /
|
||||||
+comment_char %
|
+comment_char %
|
||||||
@ -85,16 +98,3 @@ Index: glibc-2.15.90/localedata/locales/no_NO
|
|||||||
+LC_ADDRESS
|
+LC_ADDRESS
|
||||||
+copy "nb_NO"
|
+copy "nb_NO"
|
||||||
+END LC_ADDRESS
|
+END LC_ADDRESS
|
||||||
Index: glibc-2.15.90/localedata/SUPPORTED
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.15.90.orig/localedata/SUPPORTED
|
|
||||||
+++ glibc-2.15.90/localedata/SUPPORTED
|
|
||||||
@@ -317,6 +317,8 @@ nl_NL/ISO-8859-1 \
|
|
||||||
nl_NL@euro/ISO-8859-15 \
|
|
||||||
nn_NO.UTF-8/UTF-8 \
|
|
||||||
nn_NO/ISO-8859-1 \
|
|
||||||
+no_NO.UTF-8/UTF-8 \
|
|
||||||
+no_NO/ISO-8859-1 \
|
|
||||||
nr_ZA/UTF-8 \
|
|
||||||
nso_ZA/UTF-8 \
|
|
||||||
oc_FR.UTF-8/UTF-8 \
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: glibc-2.15/locale/iso-4217.def
|
Index: glibc-2.17.90/locale/iso-4217.def
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.orig/locale/iso-4217.def
|
--- glibc-2.17.90.orig/locale/iso-4217.def
|
||||||
+++ glibc-2.15/locale/iso-4217.def
|
+++ glibc-2.17.90/locale/iso-4217.def
|
||||||
@@ -8,6 +8,7 @@
|
@@ -8,6 +8,7 @@
|
||||||
*
|
*
|
||||||
* !!! The list has to be sorted !!!
|
* !!! The list has to be sorted !!!
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
libc:cbc105f8b590fa5f5343160ef0a33dde6366c427
|
|
||||||
|
|
||||||
2013-03-14 Andreas Schwab <schwab@suse.de>
|
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/aarch64/configure.in: Set
|
|
||||||
libc_cv_slibdir, libdir and libc_cv_localedir.
|
|
||||||
* sysdeps/unix/sysv/linux/aarch64/configure: Regenerate.
|
|
||||||
|
|
||||||
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/configure b/ports/sysdeps/unix/sysv/linux/aarch64/configure
|
|
||||||
index 5a22126..04b6c81 100644
|
|
||||||
--- a/ports/sysdeps/unix/sysv/linux/aarch64/configure
|
|
||||||
+++ b/ports/sysdeps/unix/sysv/linux/aarch64/configure
|
|
||||||
@@ -1,3 +1,16 @@
|
|
||||||
# This file is generated from configure.in by Autoconf. DO NOT EDIT!
|
|
||||||
+ # Local configure fragment for sysdeps/unix/sysv/linux/aarch64.
|
|
||||||
|
|
||||||
arch_minimum_kernel=3.7.0
|
|
||||||
+
|
|
||||||
+test -n "$libc_cv_slibdir" ||
|
|
||||||
+case "$prefix" in
|
|
||||||
+ /usr | /usr/)
|
|
||||||
+ libc_cv_slibdir="/lib64"
|
|
||||||
+ if test "$libdir" = '${exec_prefix}/lib'; then
|
|
||||||
+ libdir='${exec_prefix}/lib64';
|
|
||||||
+ # Locale data can be shared between 32bit and 64bit libraries
|
|
||||||
+ libc_cv_localedir='${exec_prefix}/lib/locale'
|
|
||||||
+ fi
|
|
||||||
+ ;;
|
|
||||||
+esac
|
|
||||||
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/configure.in b/ports/sysdeps/unix/sysv/linux/aarch64/configure.in
|
|
||||||
index d1995d4..6596a15 100644
|
|
||||||
--- a/ports/sysdeps/unix/sysv/linux/aarch64/configure.in
|
|
||||||
+++ b/ports/sysdeps/unix/sysv/linux/aarch64/configure.in
|
|
||||||
@@ -2,3 +2,15 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
|
|
||||||
# Local configure fragment for sysdeps/unix/sysv/linux/aarch64.
|
|
||||||
|
|
||||||
arch_minimum_kernel=3.7.0
|
|
||||||
+
|
|
||||||
+test -n "$libc_cv_slibdir" ||
|
|
||||||
+case "$prefix" in
|
|
||||||
+ /usr | /usr/)
|
|
||||||
+ libc_cv_slibdir="/lib64"
|
|
||||||
+ if test "$libdir" = '${exec_prefix}/lib'; then
|
|
||||||
+ libdir='${exec_prefix}/lib64';
|
|
||||||
+ # Locale data can be shared between 32bit and 64bit libraries
|
|
||||||
+ libc_cv_localedir='${exec_prefix}/lib/locale'
|
|
||||||
+ fi
|
|
||||||
+ ;;
|
|
||||||
+esac
|
|
@ -1,7 +1,7 @@
|
|||||||
Index: glibc-2.17/sunrpc/bindrsvprt.c
|
Index: glibc-2.17.90/sunrpc/bindrsvprt.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/sunrpc/bindrsvprt.c
|
--- glibc-2.17.90.orig/sunrpc/bindrsvprt.c
|
||||||
+++ glibc-2.17/sunrpc/bindrsvprt.c
|
+++ glibc-2.17.90/sunrpc/bindrsvprt.c
|
||||||
@@ -29,6 +29,9 @@
|
@@ -29,6 +29,9 @@
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: glibc-2.15.90/bits/sched.h
|
Index: glibc-2.17.90/bits/sched.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/bits/sched.h
|
--- glibc-2.17.90.orig/bits/sched.h
|
||||||
+++ glibc-2.15.90/bits/sched.h
|
+++ glibc-2.17.90/bits/sched.h
|
||||||
@@ -53,7 +53,7 @@ struct __sched_param
|
@@ -52,7 +52,7 @@ struct __sched_param
|
||||||
#if defined _SCHED_H && !defined __cpu_set_t_defined
|
#if defined _SCHED_H && !defined __cpu_set_t_defined
|
||||||
# define __cpu_set_t_defined
|
# define __cpu_set_t_defined
|
||||||
/* Size definition for CPU sets. */
|
/* Size definition for CPU sets. */
|
||||||
@ -11,11 +11,11 @@ Index: glibc-2.15.90/bits/sched.h
|
|||||||
# define __NCPUBITS (8 * sizeof (__cpu_mask))
|
# define __NCPUBITS (8 * sizeof (__cpu_mask))
|
||||||
|
|
||||||
/* Type for array elements in 'cpu_set_t'. */
|
/* Type for array elements in 'cpu_set_t'. */
|
||||||
Index: glibc-2.15.90/sysdeps/unix/sysv/linux/bits/sched.h
|
Index: glibc-2.17.90/sysdeps/unix/sysv/linux/bits/sched.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/sysdeps/unix/sysv/linux/bits/sched.h
|
--- glibc-2.17.90.orig/sysdeps/unix/sysv/linux/bits/sched.h
|
||||||
+++ glibc-2.15.90/sysdeps/unix/sysv/linux/bits/sched.h
|
+++ glibc-2.17.90/sysdeps/unix/sysv/linux/bits/sched.h
|
||||||
@@ -112,7 +112,7 @@ struct __sched_param
|
@@ -111,7 +111,7 @@ struct __sched_param
|
||||||
#if defined _SCHED_H && !defined __cpu_set_t_defined
|
#if defined _SCHED_H && !defined __cpu_set_t_defined
|
||||||
# define __cpu_set_t_defined
|
# define __cpu_set_t_defined
|
||||||
/* Size definition for CPU sets. */
|
/* Size definition for CPU sets. */
|
||||||
|
@ -7,10 +7,10 @@ Remapping ::1 to 127.0.0.1 is bogus when /etc/hosts is correct.
|
|||||||
bnc #684534, #606980
|
bnc #684534, #606980
|
||||||
http://sources.redhat.com/bugzilla/show_bug.cgi?id=4980
|
http://sources.redhat.com/bugzilla/show_bug.cgi?id=4980
|
||||||
|
|
||||||
Index: glibc-2.15.90/nss/nss_files/files-hosts.c
|
Index: glibc-2.17.90/nss/nss_files/files-hosts.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/nss/nss_files/files-hosts.c
|
--- glibc-2.17.90.orig/nss/nss_files/files-hosts.c
|
||||||
+++ glibc-2.15.90/nss/nss_files/files-hosts.c
|
+++ glibc-2.17.90/nss/nss_files/files-hosts.c
|
||||||
@@ -68,11 +68,6 @@ LINE_PARSER
|
@@ -68,11 +68,6 @@ LINE_PARSER
|
||||||
{
|
{
|
||||||
if (IN6_IS_ADDR_V4MAPPED (entdata->host_addr))
|
if (IN6_IS_ADDR_V4MAPPED (entdata->host_addr))
|
||||||
|
@ -1,7 +1,22 @@
|
|||||||
Index: glibc-2.15.90/nscd/nscd_stat.c
|
Index: glibc-2.17.90/csu/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/nscd/nscd_stat.c
|
--- glibc-2.17.90.orig/csu/Makefile
|
||||||
+++ glibc-2.15.90/nscd/nscd_stat.c
|
+++ glibc-2.17.90/csu/Makefile
|
||||||
|
@@ -162,8 +162,8 @@ $(objpfx)version-info.h: $(common-objpfx
|
||||||
|
if [ -z "$$os" ]; then \
|
||||||
|
os=Linux; \
|
||||||
|
fi; \
|
||||||
|
- printf '"Compiled on a %s %s system on %s.\\n"\n' \
|
||||||
|
- "$$os" "$$version" "`date +%Y-%m-%d`";; \
|
||||||
|
+ printf '"Compiled on a %s %s system.\\n"\n' \
|
||||||
|
+ "$$os" "$$version";; \
|
||||||
|
*) ;; \
|
||||||
|
esac; \
|
||||||
|
files="$(all-Banner-files)"; \
|
||||||
|
Index: glibc-2.17.90/nscd/nscd_stat.c
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.17.90.orig/nscd/nscd_stat.c
|
||||||
|
+++ glibc-2.17.90/nscd/nscd_stat.c
|
||||||
@@ -36,8 +36,13 @@
|
@@ -36,8 +36,13 @@
|
||||||
#endif /* HAVE_SELINUX */
|
#endif /* HAVE_SELINUX */
|
||||||
|
|
||||||
@ -17,18 +32,3 @@ Index: glibc-2.15.90/nscd/nscd_stat.c
|
|||||||
|
|
||||||
/* Statistic data for one database. */
|
/* Statistic data for one database. */
|
||||||
struct dbstat
|
struct dbstat
|
||||||
Index: glibc-2.15.90/csu/Makefile
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.15.90.orig/csu/Makefile
|
|
||||||
+++ glibc-2.15.90/csu/Makefile
|
|
||||||
@@ -171,8 +171,8 @@ $(objpfx)version-info.h: $(common-objpfx
|
|
||||||
if [ -z "$$os" ]; then \
|
|
||||||
os=Linux; \
|
|
||||||
fi; \
|
|
||||||
- printf '"Compiled on a %s %s system on %s.\\n"\n' \
|
|
||||||
- "$$os" "$$version" "`date +%Y-%m-%d`";; \
|
|
||||||
+ printf '"Compiled on a %s %s system.\\n"\n' \
|
|
||||||
+ "$$os" "$$version";; \
|
|
||||||
*) ;; \
|
|
||||||
esac; \
|
|
||||||
files="$(all-Banner-files)"; \
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
See:
|
See:
|
||||||
http://sourceware.org/bugzilla/show_bug.cgi?id=11928
|
http://sourceware.org/bugzilla/show_bug.cgi?id=11928
|
||||||
|
|
||||||
Index: glibc-2.15.90/nscd/aicache.c
|
Index: glibc-2.17.90/nscd/aicache.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/nscd/aicache.c
|
--- glibc-2.17.90.orig/nscd/aicache.c
|
||||||
+++ glibc-2.15.90/nscd/aicache.c
|
+++ glibc-2.17.90/nscd/aicache.c
|
||||||
@@ -25,6 +25,7 @@
|
@@ -25,6 +25,7 @@
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@ -22,11 +22,11 @@ Index: glibc-2.15.90/nscd/aicache.c
|
|||||||
|
|
||||||
/* If we are looking for both IPv4 and IPv6 address we don't want
|
/* If we are looking for both IPv4 and IPv6 address we don't want
|
||||||
the lookup functions to automatically promote IPv4 addresses to
|
the lookup functions to automatically promote IPv4 addresses to
|
||||||
Index: glibc-2.15.90/resolv/res_hconf.c
|
Index: glibc-2.17.90/resolv/res_hconf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/resolv/res_hconf.c
|
--- glibc-2.17.90.orig/resolv/res_hconf.c
|
||||||
+++ glibc-2.15.90/resolv/res_hconf.c
|
+++ glibc-2.17.90/resolv/res_hconf.c
|
||||||
@@ -82,7 +82,9 @@ static const struct cmd
|
@@ -81,7 +81,9 @@ static const struct cmd
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Structure containing the state. */
|
/* Structure containing the state. */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: glibc-2.15/nscd/nscd.conf
|
Index: glibc-2.17.90/nscd/nscd.conf
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.orig/nscd/nscd.conf
|
--- glibc-2.17.90.orig/nscd/nscd.conf
|
||||||
+++ glibc-2.15/nscd/nscd.conf
|
+++ glibc-2.17.90/nscd/nscd.conf
|
||||||
@@ -61,11 +61,11 @@
|
@@ -61,11 +61,11 @@
|
||||||
auto-propagate group yes
|
auto-propagate group yes
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: glibc-2.15.90/resolv/res_hconf.c
|
Index: glibc-2.17.90/resolv/res_hconf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/resolv/res_hconf.c
|
--- glibc-2.17.90.orig/resolv/res_hconf.c
|
||||||
+++ glibc-2.15.90/resolv/res_hconf.c
|
+++ glibc-2.17.90/resolv/res_hconf.c
|
||||||
@@ -241,9 +241,12 @@ parse_line (const char *fname, int line_
|
@@ -240,9 +240,12 @@ parse_line (const char *fname, int line_
|
||||||
if (c == NULL)
|
if (c == NULL)
|
||||||
{
|
{
|
||||||
char *buf;
|
char *buf;
|
||||||
|
@ -72,10 +72,10 @@ Content-Transfer-Encoding: 7bit
|
|||||||
Content-Disposition: inline;
|
Content-Disposition: inline;
|
||||||
filename="glibc-2.5-resolvconf.patch"
|
filename="glibc-2.5-resolvconf.patch"
|
||||||
|
|
||||||
Index: glibc-2.15/resolv/res_libc.c
|
Index: glibc-2.17.90/resolv/res_libc.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.orig/resolv/res_libc.c
|
--- glibc-2.17.90.orig/resolv/res_libc.c
|
||||||
+++ glibc-2.15/resolv/res_libc.c
|
+++ glibc-2.17.90/resolv/res_libc.c
|
||||||
@@ -22,7 +22,7 @@
|
@@ -22,7 +22,7 @@
|
||||||
#include <arpa/nameser.h>
|
#include <arpa/nameser.h>
|
||||||
#include <resolv.h>
|
#include <resolv.h>
|
||||||
|
@ -1,3 +1,70 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 13 07:24:59 UTC 2013 - schwab@suse.de
|
||||||
|
|
||||||
|
- Update to glibc 2.18 release
|
||||||
|
* No source change
|
||||||
|
- strcoll-overflow.patch: fix buffer overflow in strcoll (CVE-2012-4412,
|
||||||
|
bnc#779320)
|
||||||
|
- readdir_r-overflow.patch: fix readdir_r with long file names
|
||||||
|
(CVE-2013-4237, bnc#834594)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 6 09:20:04 UTC 2013 - schwab@suse.de
|
||||||
|
|
||||||
|
- Update to glibc 2.17.90 85891acadf1b:
|
||||||
|
* CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal
|
||||||
|
has been fixed by disabling the use of pt_chown (Bugzilla #15755).
|
||||||
|
Distributions can re-enable building and using pt_chown via the new configure
|
||||||
|
option `--enable-pt_chown'. Enabling the use of pt_chown carries with it
|
||||||
|
considerable security risks and should only be used if the distribution
|
||||||
|
understands and accepts the risks.
|
||||||
|
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
|
||||||
|
#15078).
|
||||||
|
* CVE-2013-1914 Stack overflow in getaddrinfo with many results has been
|
||||||
|
fixed (Bugzilla #15330).
|
||||||
|
* Add support for calling C++11 thread_local object destructors on thread
|
||||||
|
and program exit. This needs compiler support for offloading C++11
|
||||||
|
destructor calls to glibc.
|
||||||
|
* Improved worst case performance of libm functions with double inputs and
|
||||||
|
output.
|
||||||
|
* Support for priority inherited mutexes in pthread condition variables on
|
||||||
|
non-x86 architectures.
|
||||||
|
* Optimized string functions for AArch64. Implemented by Marcus Shawcroft.
|
||||||
|
* Optimized string functions for ARM. Implemented by Will Newton and
|
||||||
|
Richard Henderson.
|
||||||
|
* Added a benchmark framework to track performance of functions in glibc.
|
||||||
|
* New <math.h> macro named issignaling to check for a signaling NaN (sNaN).
|
||||||
|
It is based on draft TS 18661 and currently enabled as a GNU extension.
|
||||||
|
* On Linux, the clock function now uses the clock_gettime system call
|
||||||
|
for improved precision, rather than old times system call.
|
||||||
|
* Added new API functions pthread_getattr_default_np and
|
||||||
|
pthread_setattr_default_np to get and set the default pthread
|
||||||
|
attributes of a process.
|
||||||
|
* Added support for TSX lock elision for pthread mutexes on i386 and x86-64.
|
||||||
|
This may improve lock scaling of existing programs on TSX capable systems.
|
||||||
|
* Support added for AT_HWCAP2 (to coincide with Linux kernel 3.10
|
||||||
|
availability). Implemented by Ryan S. Arnold.
|
||||||
|
* Support added for POWER8 platform. Implemented by Ryan S. Arnold.
|
||||||
|
- Remove upstreamed patches:
|
||||||
|
pthread-cond-timedwait-i486.patch
|
||||||
|
glibc-aarch64-lib64.patch
|
||||||
|
arm-ld-so-cache.patch
|
||||||
|
rtlddir.patch
|
||||||
|
regexp-overrun.patch
|
||||||
|
getaddrinfo-overflow.patch
|
||||||
|
nscd-netgroup.patch
|
||||||
|
disable-pt-chown.patch
|
||||||
|
nscd-short-write.patch
|
||||||
|
big5-hkscs-update.patch.bz2
|
||||||
|
digits-dots.patch
|
||||||
|
strptime-W-week.patch
|
||||||
|
aarch64-sigsetjmp.patch
|
||||||
|
- Rediff all remaining patches
|
||||||
|
- Reenable stackguard randomization on arm
|
||||||
|
- Recognize ppc64p7 arch to build for power7
|
||||||
|
- Remove all ABI extensions from libcrypt
|
||||||
|
- cbrtl-ldbl-96.patch: fix cbrtl for ldbl-96
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de
|
Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
test-lfs runs for ever on ReiserFS. Let's disable it completely.
|
test-lfs runs for ever on ReiserFS. Let's disable it completely.
|
||||||
|
|
||||||
Index: glibc-2.15.90/io/Makefile
|
Index: glibc-2.17.90/io/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.15.90.orig/io/Makefile
|
--- glibc-2.17.90.orig/io/Makefile
|
||||||
+++ glibc-2.15.90/io/Makefile
|
+++ glibc-2.17.90/io/Makefile
|
||||||
@@ -63,7 +63,7 @@ static-only-routines = stat fstat lstat
|
@@ -63,7 +63,7 @@ static-only-routines = stat fstat lstat
|
||||||
|
|
||||||
others := pwd
|
others := pwd
|
||||||
|
@ -106,13 +106,14 @@ BuildRequires: gd-devel
|
|||||||
# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel
|
# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel
|
||||||
%define enablekernel 2.6.16
|
%define enablekernel 2.6.16
|
||||||
%endif
|
%endif
|
||||||
Version: 2.17
|
Version: 2.18
|
||||||
Release: 0
|
Release: 0
|
||||||
%define glibc_major_version 2.17
|
%define glibc_major_version 2.18
|
||||||
%define git_id c758a6861537
|
%define git_id %{nil}
|
||||||
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
|
||||||
|
Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
|
||||||
Source3: noversion.tar.bz2
|
Source3: noversion.tar.bz2
|
||||||
Source4: manpages.tar.bz2
|
Source4: manpages.tar.bz2
|
||||||
Source5: nsswitch.conf
|
Source5: nsswitch.conf
|
||||||
@ -239,48 +240,28 @@ Patch306: glibc-fix-double-loopback.diff
|
|||||||
###
|
###
|
||||||
# Patches from upstream
|
# Patches from upstream
|
||||||
###
|
###
|
||||||
# PATCH-FIX-UPSTREAM Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout
|
|
||||||
Patch1000: pthread-cond-timedwait-i486.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Use lib64 for aarch64
|
|
||||||
Patch1001: glibc-aarch64-lib64.patch
|
|
||||||
# PATCH-FIX-UPSTREAM ARM: Support loading unmarked objects from cache
|
|
||||||
Patch1002: arm-ld-so-cache.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Add support for rtld directory different from slib directory
|
|
||||||
Patch1003: rtlddir.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix buffer overrun in regexp matcher
|
|
||||||
Patch1004: regexp-overrun.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix stack overflow in getaddrinfo with many results
|
|
||||||
Patch1005: getaddrinfo-overflow.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix handling of netgroup cache in nscd
|
|
||||||
Patch1006: nscd-netgroup.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Disable use of pt_chown (CVE-2013-2207)
|
|
||||||
Patch1007: disable-pt-chown.patch
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Patches awaiting upstream approval
|
# Patches awaiting upstream approval
|
||||||
###
|
###
|
||||||
# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de
|
# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de
|
||||||
Patch2008: glibc-ld-profile.patch
|
Patch2008: glibc-ld-profile.patch
|
||||||
# PATCH-FIX-UPSTREAM Properly check for short writes when sending the response in nscd
|
|
||||||
Patch2010: nscd-short-write.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Update BIG5-HKSCS charmap to HKSCS-2008
|
|
||||||
Patch2011: big5-hkscs-update.patch.bz2
|
|
||||||
# PATCH-FIX-UPSTREAM Fix parsing of numeric hosts in gethostbyname_r
|
|
||||||
Patch2012: digits-dots.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config
|
# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config
|
||||||
Patch2013: nss-database.patch
|
Patch2013: nss-database.patch
|
||||||
# PATCH-FIX-UPSTREAM Properly handle %W in strptime
|
|
||||||
Patch2014: strptime-W-week.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741]
|
# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741]
|
||||||
Patch2015: printf-overrun.patch
|
Patch2015: printf-overrun.patch
|
||||||
# PATCH-FIX-UPSTREAM AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp
|
|
||||||
Patch2016: aarch64-sigsetjmp.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9
|
# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9
|
||||||
Patch2017: nonascii-case.patch
|
Patch2017: nonascii-case.patch
|
||||||
# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp
|
# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp
|
||||||
Patch2018: i686-strcasecmp-fallback.patch
|
Patch2018: i686-strcasecmp-fallback.patch
|
||||||
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
||||||
Patch2019: pldd-wait-ptrace-stop.patch
|
Patch2019: pldd-wait-ptrace-stop.patch
|
||||||
|
# PATCH-FIX-UPSTREAM Fix cbrtl for ldbl-96
|
||||||
|
Patch2020: cbrtl-ldbl-96.patch
|
||||||
|
# PATCH-FIX-UPSTREAM Fix buffer overflow in strcoll (CVE-2012-4412)
|
||||||
|
Patch2021: strcoll-overflow.patch
|
||||||
|
# PATCH-FIX-UPSTREAM Fix readdir_r with long file names (CVE-2013-4237)
|
||||||
|
Patch2022: readdir_r-overflow.patch
|
||||||
|
|
||||||
# Non-glibc patches
|
# Non-glibc patches
|
||||||
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
|
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
|
||||||
@ -481,27 +462,16 @@ rm nscd/s-stamp
|
|||||||
%patch305 -p1
|
%patch305 -p1
|
||||||
%patch306 -p1
|
%patch306 -p1
|
||||||
|
|
||||||
%patch1000 -p1
|
|
||||||
%patch1001 -p1
|
|
||||||
%patch1002 -p1
|
|
||||||
%patch1003 -p1
|
|
||||||
%patch1004 -p1
|
|
||||||
%patch1005 -p1
|
|
||||||
%patch1006 -p1
|
|
||||||
%patch1007 -p1
|
|
||||||
|
|
||||||
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
|
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
|
||||||
# %patch2008 -p1
|
# %patch2008 -p1
|
||||||
%patch2010 -p1
|
|
||||||
%patch2011 -p1
|
|
||||||
%patch2012 -p1
|
|
||||||
%patch2013 -p1
|
%patch2013 -p1
|
||||||
%patch2014 -p1
|
|
||||||
%patch2015 -p1
|
%patch2015 -p1
|
||||||
%patch2016 -p1
|
|
||||||
%patch2017 -p1
|
%patch2017 -p1
|
||||||
%patch2018 -p1
|
%patch2018 -p1
|
||||||
%patch2019 -p1
|
%patch2019 -p1
|
||||||
|
%patch2020 -p1
|
||||||
|
%patch2021 -p1
|
||||||
|
%patch2022 -p1
|
||||||
|
|
||||||
%patch3000
|
%patch3000
|
||||||
|
|
||||||
@ -607,7 +577,7 @@ add_ons=",libidn"
|
|||||||
%ifarch %arm aarch64 mipsel ia64
|
%ifarch %arm aarch64 mipsel ia64
|
||||||
add_ons=$add_ons,ports
|
add_ons=$add_ons,ports
|
||||||
%endif
|
%endif
|
||||||
%ifarch %arm mipsel
|
%ifarch mipsel
|
||||||
# fails to build otherwise - need to recheck and fix
|
# fails to build otherwise - need to recheck and fix
|
||||||
%define enable_stackguard_randomization 0
|
%define enable_stackguard_randomization 0
|
||||||
%endif
|
%endif
|
||||||
@ -643,12 +613,16 @@ configure_and_build_glibc() {
|
|||||||
%if %{enable_stackguard_randomization}
|
%if %{enable_stackguard_randomization}
|
||||||
--enable-stackguard-randomization \
|
--enable-stackguard-randomization \
|
||||||
%endif
|
%endif
|
||||||
|
--enable-lock-elision \
|
||||||
--build=%{target} --host=%{target} \
|
--build=%{target} --host=%{target} \
|
||||||
%ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x
|
%ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x
|
||||||
--enable-multi-arch \
|
--enable-multi-arch \
|
||||||
%endif
|
%endif
|
||||||
%ifarch mipsel
|
%ifarch mipsel
|
||||||
--without-fp \
|
--without-fp \
|
||||||
|
%endif
|
||||||
|
%ifarch ppc64p7
|
||||||
|
--with-cpu=power7 \
|
||||||
%endif
|
%endif
|
||||||
--enable-kernel=%{enablekernel} \
|
--enable-kernel=%{enablekernel} \
|
||||||
--with-bugurl=http://bugs.opensuse.org \
|
--with-bugurl=http://bugs.opensuse.org \
|
||||||
|
@ -1,3 +1,70 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 13 07:24:59 UTC 2013 - schwab@suse.de
|
||||||
|
|
||||||
|
- Update to glibc 2.18 release
|
||||||
|
* No source change
|
||||||
|
- strcoll-overflow.patch: fix buffer overflow in strcoll (CVE-2012-4412,
|
||||||
|
bnc#779320)
|
||||||
|
- readdir_r-overflow.patch: fix readdir_r with long file names
|
||||||
|
(CVE-2013-4237, bnc#834594)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 6 09:20:04 UTC 2013 - schwab@suse.de
|
||||||
|
|
||||||
|
- Update to glibc 2.17.90 85891acadf1b:
|
||||||
|
* CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal
|
||||||
|
has been fixed by disabling the use of pt_chown (Bugzilla #15755).
|
||||||
|
Distributions can re-enable building and using pt_chown via the new configure
|
||||||
|
option `--enable-pt_chown'. Enabling the use of pt_chown carries with it
|
||||||
|
considerable security risks and should only be used if the distribution
|
||||||
|
understands and accepts the risks.
|
||||||
|
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
|
||||||
|
#15078).
|
||||||
|
* CVE-2013-1914 Stack overflow in getaddrinfo with many results has been
|
||||||
|
fixed (Bugzilla #15330).
|
||||||
|
* Add support for calling C++11 thread_local object destructors on thread
|
||||||
|
and program exit. This needs compiler support for offloading C++11
|
||||||
|
destructor calls to glibc.
|
||||||
|
* Improved worst case performance of libm functions with double inputs and
|
||||||
|
output.
|
||||||
|
* Support for priority inherited mutexes in pthread condition variables on
|
||||||
|
non-x86 architectures.
|
||||||
|
* Optimized string functions for AArch64. Implemented by Marcus Shawcroft.
|
||||||
|
* Optimized string functions for ARM. Implemented by Will Newton and
|
||||||
|
Richard Henderson.
|
||||||
|
* Added a benchmark framework to track performance of functions in glibc.
|
||||||
|
* New <math.h> macro named issignaling to check for a signaling NaN (sNaN).
|
||||||
|
It is based on draft TS 18661 and currently enabled as a GNU extension.
|
||||||
|
* On Linux, the clock function now uses the clock_gettime system call
|
||||||
|
for improved precision, rather than old times system call.
|
||||||
|
* Added new API functions pthread_getattr_default_np and
|
||||||
|
pthread_setattr_default_np to get and set the default pthread
|
||||||
|
attributes of a process.
|
||||||
|
* Added support for TSX lock elision for pthread mutexes on i386 and x86-64.
|
||||||
|
This may improve lock scaling of existing programs on TSX capable systems.
|
||||||
|
* Support added for AT_HWCAP2 (to coincide with Linux kernel 3.10
|
||||||
|
availability). Implemented by Ryan S. Arnold.
|
||||||
|
* Support added for POWER8 platform. Implemented by Ryan S. Arnold.
|
||||||
|
- Remove upstreamed patches:
|
||||||
|
pthread-cond-timedwait-i486.patch
|
||||||
|
glibc-aarch64-lib64.patch
|
||||||
|
arm-ld-so-cache.patch
|
||||||
|
rtlddir.patch
|
||||||
|
regexp-overrun.patch
|
||||||
|
getaddrinfo-overflow.patch
|
||||||
|
nscd-netgroup.patch
|
||||||
|
disable-pt-chown.patch
|
||||||
|
nscd-short-write.patch
|
||||||
|
big5-hkscs-update.patch.bz2
|
||||||
|
digits-dots.patch
|
||||||
|
strptime-W-week.patch
|
||||||
|
aarch64-sigsetjmp.patch
|
||||||
|
- Rediff all remaining patches
|
||||||
|
- Reenable stackguard randomization on arm
|
||||||
|
- Recognize ppc64p7 arch to build for power7
|
||||||
|
- Remove all ABI extensions from libcrypt
|
||||||
|
- cbrtl-ldbl-96.patch: fix cbrtl for ldbl-96
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de
|
Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de
|
||||||
|
|
||||||
|
@ -105,13 +105,14 @@ BuildRequires: gd-devel
|
|||||||
# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel
|
# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel
|
||||||
%define enablekernel 2.6.16
|
%define enablekernel 2.6.16
|
||||||
%endif
|
%endif
|
||||||
Version: 2.17
|
Version: 2.18
|
||||||
Release: 0
|
Release: 0
|
||||||
%define glibc_major_version 2.17
|
%define glibc_major_version 2.18
|
||||||
%define git_id c758a6861537
|
%define git_id %{nil}
|
||||||
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
|
||||||
|
Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
|
||||||
Source3: noversion.tar.bz2
|
Source3: noversion.tar.bz2
|
||||||
Source4: manpages.tar.bz2
|
Source4: manpages.tar.bz2
|
||||||
Source5: nsswitch.conf
|
Source5: nsswitch.conf
|
||||||
@ -238,48 +239,28 @@ Patch306: glibc-fix-double-loopback.diff
|
|||||||
###
|
###
|
||||||
# Patches from upstream
|
# Patches from upstream
|
||||||
###
|
###
|
||||||
# PATCH-FIX-UPSTREAM Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout
|
|
||||||
Patch1000: pthread-cond-timedwait-i486.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Use lib64 for aarch64
|
|
||||||
Patch1001: glibc-aarch64-lib64.patch
|
|
||||||
# PATCH-FIX-UPSTREAM ARM: Support loading unmarked objects from cache
|
|
||||||
Patch1002: arm-ld-so-cache.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Add support for rtld directory different from slib directory
|
|
||||||
Patch1003: rtlddir.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix buffer overrun in regexp matcher
|
|
||||||
Patch1004: regexp-overrun.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix stack overflow in getaddrinfo with many results
|
|
||||||
Patch1005: getaddrinfo-overflow.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix handling of netgroup cache in nscd
|
|
||||||
Patch1006: nscd-netgroup.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Disable use of pt_chown (CVE-2013-2207)
|
|
||||||
Patch1007: disable-pt-chown.patch
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Patches awaiting upstream approval
|
# Patches awaiting upstream approval
|
||||||
###
|
###
|
||||||
# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de
|
# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de
|
||||||
Patch2008: glibc-ld-profile.patch
|
Patch2008: glibc-ld-profile.patch
|
||||||
# PATCH-FIX-UPSTREAM Properly check for short writes when sending the response in nscd
|
|
||||||
Patch2010: nscd-short-write.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Update BIG5-HKSCS charmap to HKSCS-2008
|
|
||||||
Patch2011: big5-hkscs-update.patch.bz2
|
|
||||||
# PATCH-FIX-UPSTREAM Fix parsing of numeric hosts in gethostbyname_r
|
|
||||||
Patch2012: digits-dots.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config
|
# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config
|
||||||
Patch2013: nss-database.patch
|
Patch2013: nss-database.patch
|
||||||
# PATCH-FIX-UPSTREAM Properly handle %W in strptime
|
|
||||||
Patch2014: strptime-W-week.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741]
|
# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741]
|
||||||
Patch2015: printf-overrun.patch
|
Patch2015: printf-overrun.patch
|
||||||
# PATCH-FIX-UPSTREAM AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp
|
|
||||||
Patch2016: aarch64-sigsetjmp.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9
|
# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9
|
||||||
Patch2017: nonascii-case.patch
|
Patch2017: nonascii-case.patch
|
||||||
# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp
|
# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp
|
||||||
Patch2018: i686-strcasecmp-fallback.patch
|
Patch2018: i686-strcasecmp-fallback.patch
|
||||||
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
||||||
Patch2019: pldd-wait-ptrace-stop.patch
|
Patch2019: pldd-wait-ptrace-stop.patch
|
||||||
|
# PATCH-FIX-UPSTREAM Fix cbrtl for ldbl-96
|
||||||
|
Patch2020: cbrtl-ldbl-96.patch
|
||||||
|
# PATCH-FIX-UPSTREAM Fix buffer overflow in strcoll (CVE-2012-4412)
|
||||||
|
Patch2021: strcoll-overflow.patch
|
||||||
|
# PATCH-FIX-UPSTREAM Fix readdir_r with long file names (CVE-2013-4237)
|
||||||
|
Patch2022: readdir_r-overflow.patch
|
||||||
|
|
||||||
# Non-glibc patches
|
# Non-glibc patches
|
||||||
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
|
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
|
||||||
@ -481,27 +462,16 @@ rm nscd/s-stamp
|
|||||||
%patch305 -p1
|
%patch305 -p1
|
||||||
%patch306 -p1
|
%patch306 -p1
|
||||||
|
|
||||||
%patch1000 -p1
|
|
||||||
%patch1001 -p1
|
|
||||||
%patch1002 -p1
|
|
||||||
%patch1003 -p1
|
|
||||||
%patch1004 -p1
|
|
||||||
%patch1005 -p1
|
|
||||||
%patch1006 -p1
|
|
||||||
%patch1007 -p1
|
|
||||||
|
|
||||||
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
|
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
|
||||||
# %patch2008 -p1
|
# %patch2008 -p1
|
||||||
%patch2010 -p1
|
|
||||||
%patch2011 -p1
|
|
||||||
%patch2012 -p1
|
|
||||||
%patch2013 -p1
|
%patch2013 -p1
|
||||||
%patch2014 -p1
|
|
||||||
%patch2015 -p1
|
%patch2015 -p1
|
||||||
%patch2016 -p1
|
|
||||||
%patch2017 -p1
|
%patch2017 -p1
|
||||||
%patch2018 -p1
|
%patch2018 -p1
|
||||||
%patch2019 -p1
|
%patch2019 -p1
|
||||||
|
%patch2020 -p1
|
||||||
|
%patch2021 -p1
|
||||||
|
%patch2022 -p1
|
||||||
|
|
||||||
%patch3000
|
%patch3000
|
||||||
|
|
||||||
@ -607,7 +577,7 @@ add_ons=",libidn"
|
|||||||
%ifarch %arm aarch64 mipsel ia64
|
%ifarch %arm aarch64 mipsel ia64
|
||||||
add_ons=$add_ons,ports
|
add_ons=$add_ons,ports
|
||||||
%endif
|
%endif
|
||||||
%ifarch %arm mipsel
|
%ifarch mipsel
|
||||||
# fails to build otherwise - need to recheck and fix
|
# fails to build otherwise - need to recheck and fix
|
||||||
%define enable_stackguard_randomization 0
|
%define enable_stackguard_randomization 0
|
||||||
%endif
|
%endif
|
||||||
@ -643,12 +613,16 @@ configure_and_build_glibc() {
|
|||||||
%if %{enable_stackguard_randomization}
|
%if %{enable_stackguard_randomization}
|
||||||
--enable-stackguard-randomization \
|
--enable-stackguard-randomization \
|
||||||
%endif
|
%endif
|
||||||
|
--enable-lock-elision \
|
||||||
--build=%{target} --host=%{target} \
|
--build=%{target} --host=%{target} \
|
||||||
%ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x
|
%ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x
|
||||||
--enable-multi-arch \
|
--enable-multi-arch \
|
||||||
%endif
|
%endif
|
||||||
%ifarch mipsel
|
%ifarch mipsel
|
||||||
--without-fp \
|
--without-fp \
|
||||||
|
%endif
|
||||||
|
%ifarch ppc64p7
|
||||||
|
--with-cpu=power7 \
|
||||||
%endif
|
%endif
|
||||||
--enable-kernel=%{enablekernel} \
|
--enable-kernel=%{enablekernel} \
|
||||||
--with-bugurl=http://bugs.opensuse.org \
|
--with-bugurl=http://bugs.opensuse.org \
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
Index: glibc-2.16.90/csu/version.c
|
Index: glibc-2.17.90/csu/version.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.90.orig/csu/version.c
|
--- glibc-2.17.90.orig/csu/version.c
|
||||||
+++ glibc-2.16.90/csu/version.c
|
+++ glibc-2.17.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 "PKGVERSION 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 "PKGVERSION RELEASE" release version "VERSION" (git "GITID"), 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) 2013 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\
|
||||||
PARTICULAR PURPOSE.\n\
|
PARTICULAR PURPOSE.\n\
|
||||||
|
@ -1,3 +1,70 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 13 07:24:59 UTC 2013 - schwab@suse.de
|
||||||
|
|
||||||
|
- Update to glibc 2.18 release
|
||||||
|
* No source change
|
||||||
|
- strcoll-overflow.patch: fix buffer overflow in strcoll (CVE-2012-4412,
|
||||||
|
bnc#779320)
|
||||||
|
- readdir_r-overflow.patch: fix readdir_r with long file names
|
||||||
|
(CVE-2013-4237, bnc#834594)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 6 09:20:04 UTC 2013 - schwab@suse.de
|
||||||
|
|
||||||
|
- Update to glibc 2.17.90 85891acadf1b:
|
||||||
|
* CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal
|
||||||
|
has been fixed by disabling the use of pt_chown (Bugzilla #15755).
|
||||||
|
Distributions can re-enable building and using pt_chown via the new configure
|
||||||
|
option `--enable-pt_chown'. Enabling the use of pt_chown carries with it
|
||||||
|
considerable security risks and should only be used if the distribution
|
||||||
|
understands and accepts the risks.
|
||||||
|
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
|
||||||
|
#15078).
|
||||||
|
* CVE-2013-1914 Stack overflow in getaddrinfo with many results has been
|
||||||
|
fixed (Bugzilla #15330).
|
||||||
|
* Add support for calling C++11 thread_local object destructors on thread
|
||||||
|
and program exit. This needs compiler support for offloading C++11
|
||||||
|
destructor calls to glibc.
|
||||||
|
* Improved worst case performance of libm functions with double inputs and
|
||||||
|
output.
|
||||||
|
* Support for priority inherited mutexes in pthread condition variables on
|
||||||
|
non-x86 architectures.
|
||||||
|
* Optimized string functions for AArch64. Implemented by Marcus Shawcroft.
|
||||||
|
* Optimized string functions for ARM. Implemented by Will Newton and
|
||||||
|
Richard Henderson.
|
||||||
|
* Added a benchmark framework to track performance of functions in glibc.
|
||||||
|
* New <math.h> macro named issignaling to check for a signaling NaN (sNaN).
|
||||||
|
It is based on draft TS 18661 and currently enabled as a GNU extension.
|
||||||
|
* On Linux, the clock function now uses the clock_gettime system call
|
||||||
|
for improved precision, rather than old times system call.
|
||||||
|
* Added new API functions pthread_getattr_default_np and
|
||||||
|
pthread_setattr_default_np to get and set the default pthread
|
||||||
|
attributes of a process.
|
||||||
|
* Added support for TSX lock elision for pthread mutexes on i386 and x86-64.
|
||||||
|
This may improve lock scaling of existing programs on TSX capable systems.
|
||||||
|
* Support added for AT_HWCAP2 (to coincide with Linux kernel 3.10
|
||||||
|
availability). Implemented by Ryan S. Arnold.
|
||||||
|
* Support added for POWER8 platform. Implemented by Ryan S. Arnold.
|
||||||
|
- Remove upstreamed patches:
|
||||||
|
pthread-cond-timedwait-i486.patch
|
||||||
|
glibc-aarch64-lib64.patch
|
||||||
|
arm-ld-so-cache.patch
|
||||||
|
rtlddir.patch
|
||||||
|
regexp-overrun.patch
|
||||||
|
getaddrinfo-overflow.patch
|
||||||
|
nscd-netgroup.patch
|
||||||
|
disable-pt-chown.patch
|
||||||
|
nscd-short-write.patch
|
||||||
|
big5-hkscs-update.patch.bz2
|
||||||
|
digits-dots.patch
|
||||||
|
strptime-W-week.patch
|
||||||
|
aarch64-sigsetjmp.patch
|
||||||
|
- Rediff all remaining patches
|
||||||
|
- Reenable stackguard randomization on arm
|
||||||
|
- Recognize ppc64p7 arch to build for power7
|
||||||
|
- Remove all ABI extensions from libcrypt
|
||||||
|
- cbrtl-ldbl-96.patch: fix cbrtl for ldbl-96
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de
|
Wed Jul 31 12:20:38 UTC 2013 - schwab@suse.de
|
||||||
|
|
||||||
|
64
glibc.spec
64
glibc.spec
@ -106,13 +106,14 @@ BuildRequires: gd-devel
|
|||||||
# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel
|
# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel
|
||||||
%define enablekernel 2.6.16
|
%define enablekernel 2.6.16
|
||||||
%endif
|
%endif
|
||||||
Version: 2.17
|
Version: 2.18
|
||||||
Release: 0
|
Release: 0
|
||||||
%define glibc_major_version 2.17
|
%define glibc_major_version 2.18
|
||||||
%define git_id c758a6861537
|
%define git_id %{nil}
|
||||||
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
|
||||||
|
Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
|
||||||
Source3: noversion.tar.bz2
|
Source3: noversion.tar.bz2
|
||||||
Source4: manpages.tar.bz2
|
Source4: manpages.tar.bz2
|
||||||
Source5: nsswitch.conf
|
Source5: nsswitch.conf
|
||||||
@ -239,48 +240,28 @@ Patch306: glibc-fix-double-loopback.diff
|
|||||||
###
|
###
|
||||||
# Patches from upstream
|
# Patches from upstream
|
||||||
###
|
###
|
||||||
# PATCH-FIX-UPSTREAM Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout
|
|
||||||
Patch1000: pthread-cond-timedwait-i486.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Use lib64 for aarch64
|
|
||||||
Patch1001: glibc-aarch64-lib64.patch
|
|
||||||
# PATCH-FIX-UPSTREAM ARM: Support loading unmarked objects from cache
|
|
||||||
Patch1002: arm-ld-so-cache.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Add support for rtld directory different from slib directory
|
|
||||||
Patch1003: rtlddir.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix buffer overrun in regexp matcher
|
|
||||||
Patch1004: regexp-overrun.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix stack overflow in getaddrinfo with many results
|
|
||||||
Patch1005: getaddrinfo-overflow.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix handling of netgroup cache in nscd
|
|
||||||
Patch1006: nscd-netgroup.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Disable use of pt_chown (CVE-2013-2207)
|
|
||||||
Patch1007: disable-pt-chown.patch
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Patches awaiting upstream approval
|
# Patches awaiting upstream approval
|
||||||
###
|
###
|
||||||
# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de
|
# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj@suse.de
|
||||||
Patch2008: glibc-ld-profile.patch
|
Patch2008: glibc-ld-profile.patch
|
||||||
# PATCH-FIX-UPSTREAM Properly check for short writes when sending the response in nscd
|
|
||||||
Patch2010: nscd-short-write.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Update BIG5-HKSCS charmap to HKSCS-2008
|
|
||||||
Patch2011: big5-hkscs-update.patch.bz2
|
|
||||||
# PATCH-FIX-UPSTREAM Fix parsing of numeric hosts in gethostbyname_r
|
|
||||||
Patch2012: digits-dots.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config
|
# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config
|
||||||
Patch2013: nss-database.patch
|
Patch2013: nss-database.patch
|
||||||
# PATCH-FIX-UPSTREAM Properly handle %W in strptime
|
|
||||||
Patch2014: strptime-W-week.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741]
|
# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741]
|
||||||
Patch2015: printf-overrun.patch
|
Patch2015: printf-overrun.patch
|
||||||
# PATCH-FIX-UPSTREAM AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp
|
|
||||||
Patch2016: aarch64-sigsetjmp.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9
|
# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9
|
||||||
Patch2017: nonascii-case.patch
|
Patch2017: nonascii-case.patch
|
||||||
# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp
|
# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp
|
||||||
Patch2018: i686-strcasecmp-fallback.patch
|
Patch2018: i686-strcasecmp-fallback.patch
|
||||||
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
|
||||||
Patch2019: pldd-wait-ptrace-stop.patch
|
Patch2019: pldd-wait-ptrace-stop.patch
|
||||||
|
# PATCH-FIX-UPSTREAM Fix cbrtl for ldbl-96
|
||||||
|
Patch2020: cbrtl-ldbl-96.patch
|
||||||
|
# PATCH-FIX-UPSTREAM Fix buffer overflow in strcoll (CVE-2012-4412)
|
||||||
|
Patch2021: strcoll-overflow.patch
|
||||||
|
# PATCH-FIX-UPSTREAM Fix readdir_r with long file names (CVE-2013-4237)
|
||||||
|
Patch2022: readdir_r-overflow.patch
|
||||||
|
|
||||||
# Non-glibc patches
|
# Non-glibc patches
|
||||||
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
|
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
|
||||||
@ -481,27 +462,16 @@ rm nscd/s-stamp
|
|||||||
%patch305 -p1
|
%patch305 -p1
|
||||||
%patch306 -p1
|
%patch306 -p1
|
||||||
|
|
||||||
%patch1000 -p1
|
|
||||||
%patch1001 -p1
|
|
||||||
%patch1002 -p1
|
|
||||||
%patch1003 -p1
|
|
||||||
%patch1004 -p1
|
|
||||||
%patch1005 -p1
|
|
||||||
%patch1006 -p1
|
|
||||||
%patch1007 -p1
|
|
||||||
|
|
||||||
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
|
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
|
||||||
# %patch2008 -p1
|
# %patch2008 -p1
|
||||||
%patch2010 -p1
|
|
||||||
%patch2011 -p1
|
|
||||||
%patch2012 -p1
|
|
||||||
%patch2013 -p1
|
%patch2013 -p1
|
||||||
%patch2014 -p1
|
|
||||||
%patch2015 -p1
|
%patch2015 -p1
|
||||||
%patch2016 -p1
|
|
||||||
%patch2017 -p1
|
%patch2017 -p1
|
||||||
%patch2018 -p1
|
%patch2018 -p1
|
||||||
%patch2019 -p1
|
%patch2019 -p1
|
||||||
|
%patch2020 -p1
|
||||||
|
%patch2021 -p1
|
||||||
|
%patch2022 -p1
|
||||||
|
|
||||||
%patch3000
|
%patch3000
|
||||||
|
|
||||||
@ -607,7 +577,7 @@ add_ons=",libidn"
|
|||||||
%ifarch %arm aarch64 mipsel ia64
|
%ifarch %arm aarch64 mipsel ia64
|
||||||
add_ons=$add_ons,ports
|
add_ons=$add_ons,ports
|
||||||
%endif
|
%endif
|
||||||
%ifarch %arm mipsel
|
%ifarch mipsel
|
||||||
# fails to build otherwise - need to recheck and fix
|
# fails to build otherwise - need to recheck and fix
|
||||||
%define enable_stackguard_randomization 0
|
%define enable_stackguard_randomization 0
|
||||||
%endif
|
%endif
|
||||||
@ -643,12 +613,16 @@ configure_and_build_glibc() {
|
|||||||
%if %{enable_stackguard_randomization}
|
%if %{enable_stackguard_randomization}
|
||||||
--enable-stackguard-randomization \
|
--enable-stackguard-randomization \
|
||||||
%endif
|
%endif
|
||||||
|
--enable-lock-elision \
|
||||||
--build=%{target} --host=%{target} \
|
--build=%{target} --host=%{target} \
|
||||||
%ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x
|
%ifarch ppc ppc64 %{ix86} x86_64 sparc sparc64 s390 s390x
|
||||||
--enable-multi-arch \
|
--enable-multi-arch \
|
||||||
%endif
|
%endif
|
||||||
%ifarch mipsel
|
%ifarch mipsel
|
||||||
--without-fp \
|
--without-fp \
|
||||||
|
%endif
|
||||||
|
%ifarch ppc64p7
|
||||||
|
--with-cpu=power7 \
|
||||||
%endif
|
%endif
|
||||||
--enable-kernel=%{enablekernel} \
|
--enable-kernel=%{enablekernel} \
|
||||||
--with-bugurl=http://bugs.opensuse.org \
|
--with-bugurl=http://bugs.opensuse.org \
|
||||||
|
@ -15,14 +15,14 @@
|
|||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <elf.h>
|
#include <elf.h>
|
||||||
|
|
||||||
#define verbose_exec(failcode, fail_ok, path...) \
|
#define verbose_exec(failcode, path...) \
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
char *const arr[] = { path, NULL }; \
|
char *const arr[] = { path, NULL }; \
|
||||||
vexec (failcode, fail_ok, arr); \
|
vexec (failcode, arr); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
__attribute__((noinline)) void vexec (int failcode, int fail_ok, char *const path[]);
|
__attribute__((noinline)) void vexec (int failcode, char *const path[]);
|
||||||
__attribute__((noinline)) void says (const char *str);
|
__attribute__((noinline)) void says (const char *str);
|
||||||
__attribute__((noinline)) void sayn (long num);
|
__attribute__((noinline)) void sayn (long num);
|
||||||
__attribute__((noinline)) void message (char *const path[]);
|
__attribute__((noinline)) void message (char *const path[]);
|
||||||
@ -116,23 +116,18 @@ main (void)
|
|||||||
before running one of the lib's %post scriptlet. /sbin/ldconfig will
|
before running one of the lib's %post scriptlet. /sbin/ldconfig will
|
||||||
then be run by the other arch's %post. */
|
then be run by the other arch's %post. */
|
||||||
if (access ("/sbin/ldconfig", X_OK) == 0)
|
if (access ("/sbin/ldconfig", X_OK) == 0)
|
||||||
verbose_exec (110, 0, "/sbin/ldconfig", "/sbin/ldconfig", "-X");
|
verbose_exec (110, "/sbin/ldconfig", "/sbin/ldconfig", "-X");
|
||||||
|
|
||||||
if (utimes (GCONV_MODULES_DIR "/gconv-modules.cache", NULL) == 0)
|
if (utimes (GCONV_MODULES_DIR "/gconv-modules.cache", NULL) == 0)
|
||||||
{
|
{
|
||||||
#ifndef ICONVCONFIG
|
#ifndef ICONVCONFIG
|
||||||
#define ICONVCONFIG "/usr/sbin/iconvconfig"
|
#define ICONVCONFIG "/usr/sbin/iconvconfig"
|
||||||
#endif
|
#endif
|
||||||
verbose_exec (113, 0, ICONVCONFIG, "/usr/sbin/iconvconfig",
|
verbose_exec (113, ICONVCONFIG, "/usr/sbin/iconvconfig",
|
||||||
"-o", GCONV_MODULES_DIR"/gconv-modules.cache",
|
"-o", GCONV_MODULES_DIR"/gconv-modules.cache",
|
||||||
"--nostdlib", GCONV_MODULES_DIR);
|
"--nostdlib", GCONV_MODULES_DIR);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Implement %set_permissions %{_libexecdir}/pt_chown. */
|
|
||||||
if (access ("/usr/bin/chkstat", X_OK) == 0)
|
|
||||||
verbose_exec (114, 1, "/usr/bin/chkstat", "/usr/bin/chkstat",
|
|
||||||
"-n", "--set", "--system", "/usr/lib/pt_chown");
|
|
||||||
|
|
||||||
/* Check if telinit is available and the init fifo as well. */
|
/* Check if telinit is available and the init fifo as well. */
|
||||||
if (access ("/sbin/telinit", X_OK) || access ("/dev/initctl", F_OK))
|
if (access ("/sbin/telinit", X_OK) || access ("/dev/initctl", F_OK))
|
||||||
_exit (0);
|
_exit (0);
|
||||||
@ -147,7 +142,7 @@ main (void)
|
|||||||
_exit (0);
|
_exit (0);
|
||||||
|
|
||||||
if (check_elf ("/proc/1/exe"))
|
if (check_elf ("/proc/1/exe"))
|
||||||
verbose_exec (116, 0, "/sbin/telinit", "/sbin/telinit", "u");
|
verbose_exec (116, "/sbin/telinit", "/sbin/telinit", "u");
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* Check if we can safely condrestart sshd. */
|
/* Check if we can safely condrestart sshd. */
|
||||||
@ -156,7 +151,7 @@ main (void)
|
|||||||
&& access ("/bin/bash", X_OK) == 0)
|
&& access ("/bin/bash", X_OK) == 0)
|
||||||
{
|
{
|
||||||
if (check_elf ("/usr/sbin/sshd"))
|
if (check_elf ("/usr/sbin/sshd"))
|
||||||
verbose_exec (121, 0, "/sbin/service", "/sbin/service", "sshd", "condrestart");
|
verbose_exec (121, "/sbin/service", "/sbin/service", "sshd", "condrestart");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -164,7 +159,7 @@ main (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
vexec (int failcode, int fail_ok, char *const path[])
|
vexec (int failcode, char *const path[])
|
||||||
{
|
{
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
int status, save_errno;
|
int status, save_errno;
|
||||||
@ -200,15 +195,8 @@ vexec (int failcode, int fail_ok, char *const path[])
|
|||||||
message (path);
|
message (path);
|
||||||
says (" child exited with exit code ");
|
says (" child exited with exit code ");
|
||||||
sayn (WEXITSTATUS (status));
|
sayn (WEXITSTATUS (status));
|
||||||
if (fail_ok)
|
says ("\n");
|
||||||
{
|
_exit (WEXITSTATUS (status));
|
||||||
says (" (ignored) \n");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
says ("\n");
|
|
||||||
_exit (WEXITSTATUS (status));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,10 +4,10 @@
|
|||||||
* sysdeps/i386/i686/multiarch/strcmp-ssse3.S (__strcasecmp_ssse3)
|
* sysdeps/i386/i686/multiarch/strcmp-ssse3.S (__strcasecmp_ssse3)
|
||||||
(__strncasecmp_ssse3) [PIC]: Likewise.
|
(__strncasecmp_ssse3) [PIC]: Likewise.
|
||||||
|
|
||||||
Index: glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-sse4.S
|
Index: glibc-2.17.90/sysdeps/i386/i686/multiarch/strcmp-sse4.S
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/sysdeps/i386/i686/multiarch/strcmp-sse4.S
|
--- glibc-2.17.90.orig/sysdeps/i386/i686/multiarch/strcmp-sse4.S
|
||||||
+++ glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-sse4.S
|
+++ glibc-2.17.90/sysdeps/i386/i686/multiarch/strcmp-sse4.S
|
||||||
@@ -121,8 +121,14 @@ ENTRY (__strcasecmp_sse4_2)
|
@@ -121,8 +121,14 @@ ENTRY (__strcasecmp_sse4_2)
|
||||||
movl (%eax), %eax
|
movl (%eax), %eax
|
||||||
# endif
|
# endif
|
||||||
@ -38,10 +38,10 @@ Index: glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-sse4.S
|
|||||||
END (__strncasecmp_sse4_2)
|
END (__strncasecmp_sse4_2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Index: glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
|
Index: glibc-2.17.90/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
|
--- glibc-2.17.90.orig/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
|
||||||
+++ glibc-2.17/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
|
+++ glibc-2.17.90/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
|
||||||
@@ -138,8 +138,14 @@ ENTRY (__strcasecmp_ssse3)
|
@@ -138,8 +138,14 @@ ENTRY (__strcasecmp_ssse3)
|
||||||
movl (%eax), %eax
|
movl (%eax), %eax
|
||||||
# endif
|
# endif
|
||||||
|
@ -6,10 +6,10 @@
|
|||||||
locales.
|
locales.
|
||||||
* string/test-strncasecmp.c (test_main): Likewise.
|
* string/test-strncasecmp.c (test_main): Likewise.
|
||||||
|
|
||||||
Index: glibc-2.17/locale/categories.def
|
Index: glibc-2.17.90/locale/categories.def
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/locale/categories.def
|
--- glibc-2.17.90.orig/locale/categories.def
|
||||||
+++ glibc-2.17/locale/categories.def
|
+++ glibc-2.17.90/locale/categories.def
|
||||||
@@ -133,6 +133,7 @@ DEFINE_CATEGORY
|
@@ -133,6 +133,7 @@ DEFINE_CATEGORY
|
||||||
DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE_LEN, "ctype-translit-ignore-len", std, word)
|
DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE_LEN, "ctype-translit-ignore-len", std, word)
|
||||||
DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE, "ctype-translit-ignore", std, string)
|
DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE, "ctype-translit-ignore", std, string)
|
||||||
@ -18,11 +18,11 @@ Index: glibc-2.17/locale/categories.def
|
|||||||
), _nl_postload_ctype)
|
), _nl_postload_ctype)
|
||||||
|
|
||||||
|
|
||||||
Index: glibc-2.17/string/Makefile
|
Index: glibc-2.17.90/string/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/string/Makefile
|
--- glibc-2.17.90.orig/string/Makefile
|
||||||
+++ glibc-2.17/string/Makefile
|
+++ glibc-2.17.90/string/Makefile
|
||||||
@@ -69,6 +69,10 @@ noinl-tester-ENV = LANGUAGE=C
|
@@ -65,6 +65,10 @@ noinl-tester-ENV = LANGUAGE=C
|
||||||
tst-strxfrm-ENV = LOCPATH=$(common-objpfx)localedata
|
tst-strxfrm-ENV = LOCPATH=$(common-objpfx)localedata
|
||||||
tst-strxfrm2-ENV = LOCPATH=$(common-objpfx)localedata
|
tst-strxfrm2-ENV = LOCPATH=$(common-objpfx)localedata
|
||||||
bug-strcoll1-ENV = LOCPATH=$(common-objpfx)localedata
|
bug-strcoll1-ENV = LOCPATH=$(common-objpfx)localedata
|
||||||
@ -33,10 +33,10 @@ Index: glibc-2.17/string/Makefile
|
|||||||
CFLAGS-inl-tester.c = -fno-builtin
|
CFLAGS-inl-tester.c = -fno-builtin
|
||||||
CFLAGS-noinl-tester.c = -fno-builtin
|
CFLAGS-noinl-tester.c = -fno-builtin
|
||||||
CFLAGS-tst-strlen.c = -fno-builtin
|
CFLAGS-tst-strlen.c = -fno-builtin
|
||||||
Index: glibc-2.17/string/test-strcasecmp.c
|
Index: glibc-2.17.90/string/test-strcasecmp.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/string/test-strcasecmp.c
|
--- glibc-2.17.90.orig/string/test-strcasecmp.c
|
||||||
+++ glibc-2.17/string/test-strcasecmp.c
|
+++ glibc-2.17.90/string/test-strcasecmp.c
|
||||||
@@ -17,6 +17,7 @@
|
@@ -17,6 +17,7 @@
|
||||||
License along with the GNU C Library; if not, see
|
License along with the GNU C Library; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
@ -45,7 +45,7 @@ Index: glibc-2.17/string/test-strcasecmp.c
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#define TEST_MAIN
|
#define TEST_MAIN
|
||||||
#define TEST_NAME "strcasecmp"
|
#define TEST_NAME "strcasecmp"
|
||||||
@@ -230,14 +231,18 @@ do_random_tests (void)
|
@@ -206,14 +207,18 @@ do_random_tests (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ Index: glibc-2.17/string/test-strcasecmp.c
|
|||||||
FOR_EACH_IMPL (impl, 0)
|
FOR_EACH_IMPL (impl, 0)
|
||||||
printf ("\t%s", impl->name);
|
printf ("\t%s", impl->name);
|
||||||
putchar ('\n');
|
putchar ('\n');
|
||||||
@@ -270,6 +275,19 @@ test_main (void)
|
@@ -246,6 +251,19 @@ test_main (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
do_random_tests ();
|
do_random_tests ();
|
||||||
@ -88,10 +88,10 @@ Index: glibc-2.17/string/test-strcasecmp.c
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: glibc-2.17/string/test-strncasecmp.c
|
Index: glibc-2.17.90/string/test-strncasecmp.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/string/test-strncasecmp.c
|
--- glibc-2.17.90.orig/string/test-strncasecmp.c
|
||||||
+++ glibc-2.17/string/test-strncasecmp.c
|
+++ glibc-2.17.90/string/test-strncasecmp.c
|
||||||
@@ -17,6 +17,7 @@
|
@@ -17,6 +17,7 @@
|
||||||
License along with the GNU C Library; if not, see
|
License along with the GNU C Library; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
@ -100,7 +100,7 @@ Index: glibc-2.17/string/test-strncasecmp.c
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#define TEST_MAIN
|
#define TEST_MAIN
|
||||||
#define TEST_NAME "strncasecmp"
|
#define TEST_NAME "strncasecmp"
|
||||||
@@ -280,17 +281,21 @@ bz14195 (void)
|
@@ -256,17 +257,21 @@ bz14195 (void)
|
||||||
check_result (impl, empty_string, "", 5, 0);
|
check_result (impl, empty_string, "", 5, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ Index: glibc-2.17/string/test-strncasecmp.c
|
|||||||
FOR_EACH_IMPL (impl, 0)
|
FOR_EACH_IMPL (impl, 0)
|
||||||
printf ("\t%s", impl->name);
|
printf ("\t%s", impl->name);
|
||||||
putchar ('\n');
|
putchar ('\n');
|
||||||
@@ -353,6 +358,19 @@ test_main (void)
|
@@ -329,6 +334,19 @@ test_main (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
do_random_tests ();
|
do_random_tests ();
|
||||||
|
@ -1,98 +0,0 @@
|
|||||||
2013-06-11 Andreas Schwab <schwab@suse.de>
|
|
||||||
|
|
||||||
[BZ #15577]
|
|
||||||
* nscd/connections.c (nscd_run_worker): Always zero-terminate key.
|
|
||||||
* nscd/netgroupcache.c (addgetnetgrentX): Properly handle absent
|
|
||||||
values in the triple.
|
|
||||||
* nscd/nscd_netgroup.c (__nscd_setnetgrent): Include zero
|
|
||||||
terminator in the group key.
|
|
||||||
|
|
||||||
Index: glibc-2.17/nscd/connections.c
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/nscd/connections.c
|
|
||||||
+++ glibc-2.17/nscd/connections.c
|
|
||||||
@@ -1762,7 +1762,7 @@ nscd_run_worker (void *p)
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Get the key. */
|
|
||||||
- char keybuf[MAXKEYLEN];
|
|
||||||
+ char keybuf[MAXKEYLEN + 1];
|
|
||||||
|
|
||||||
if (__builtin_expect (TEMP_FAILURE_RETRY (read (fd, keybuf,
|
|
||||||
req.key_len))
|
|
||||||
@@ -1774,6 +1774,7 @@ nscd_run_worker (void *p)
|
|
||||||
strerror_r (errno, buf, sizeof (buf)));
|
|
||||||
goto close_and_out;
|
|
||||||
}
|
|
||||||
+ keybuf[req.key_len] = '\0';
|
|
||||||
|
|
||||||
if (__builtin_expect (debug_level, 0) > 0)
|
|
||||||
{
|
|
||||||
Index: glibc-2.17/nscd/netgroupcache.c
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/nscd/netgroupcache.c
|
|
||||||
+++ glibc-2.17/nscd/netgroupcache.c
|
|
||||||
@@ -192,18 +192,26 @@ addgetnetgrentX (struct database_dyn *db
|
|
||||||
const char *nuser = data.val.triple.user;
|
|
||||||
const char *ndomain = data.val.triple.domain;
|
|
||||||
|
|
||||||
- if (data.val.triple.host > data.val.triple.user
|
|
||||||
- || data.val.triple.user > data.val.triple.domain)
|
|
||||||
+ if (nhost == NULL || nuser == NULL || ndomain == NULL
|
|
||||||
+ || nhost > nuser || nuser > ndomain)
|
|
||||||
{
|
|
||||||
- const char *last = MAX (nhost,
|
|
||||||
- MAX (nuser, ndomain));
|
|
||||||
- size_t bufused = (last + strlen (last) + 1
|
|
||||||
- - buffer);
|
|
||||||
+ const char *last = nhost;
|
|
||||||
+ if (last == NULL
|
|
||||||
+ || (nuser != NULL && nuser > last))
|
|
||||||
+ last = nuser;
|
|
||||||
+ if (last == NULL
|
|
||||||
+ || (ndomain != NULL && ndomain > last))
|
|
||||||
+ last = ndomain;
|
|
||||||
+
|
|
||||||
+ size_t bufused
|
|
||||||
+ = (last == NULL
|
|
||||||
+ ? buffilled
|
|
||||||
+ : last + strlen (last) + 1 - buffer);
|
|
||||||
|
|
||||||
/* We have to make temporary copies. */
|
|
||||||
- size_t hostlen = strlen (nhost) + 1;
|
|
||||||
- size_t userlen = strlen (nuser) + 1;
|
|
||||||
- size_t domainlen = strlen (ndomain) + 1;
|
|
||||||
+ size_t hostlen = strlen (nhost ?: "") + 1;
|
|
||||||
+ size_t userlen = strlen (nuser ?: "") + 1;
|
|
||||||
+ size_t domainlen = strlen (ndomain ?: "") + 1;
|
|
||||||
size_t needed = hostlen + userlen + domainlen;
|
|
||||||
|
|
||||||
if (buflen - req->key_len - bufused < needed)
|
|
||||||
@@ -226,11 +234,11 @@ addgetnetgrentX (struct database_dyn *db
|
|
||||||
}
|
|
||||||
|
|
||||||
nhost = memcpy (buffer + bufused,
|
|
||||||
- nhost, hostlen);
|
|
||||||
+ nhost ?: "", hostlen);
|
|
||||||
nuser = memcpy ((char *) nhost + hostlen,
|
|
||||||
- nuser, userlen);
|
|
||||||
+ nuser ?: "", userlen);
|
|
||||||
ndomain = memcpy ((char *) nuser + userlen,
|
|
||||||
- ndomain, domainlen);
|
|
||||||
+ ndomain ?: "", domainlen);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *wp = buffer + buffilled;
|
|
||||||
Index: glibc-2.17/nscd/nscd_netgroup.c
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/nscd/nscd_netgroup.c
|
|
||||||
+++ glibc-2.17/nscd/nscd_netgroup.c
|
|
||||||
@@ -48,7 +48,7 @@ __nscd_setnetgrent (const char *group, s
|
|
||||||
{
|
|
||||||
int gc_cycle;
|
|
||||||
int nretries = 0;
|
|
||||||
- size_t group_len = strlen (group);
|
|
||||||
+ size_t group_len = strlen (group) + 1;
|
|
||||||
|
|
||||||
/* If the mapping is available, try to search there instead of
|
|
||||||
communicating with the nscd. */
|
|
@ -1,178 +0,0 @@
|
|||||||
From 5a7b70c87c5ba03a122db0372e87ecb550ee4b38 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Schwab <schwab@suse.de>
|
|
||||||
Date: Tue, 4 Dec 2012 16:14:13 +0100
|
|
||||||
Subject: [PATCH] Properly check for short writes when sending the response in
|
|
||||||
nscd
|
|
||||||
|
|
||||||
* nscd/grpcache.c (cache_addgr): Properly check for short write.
|
|
||||||
* nscd/initgrcache.c (addinitgroupsX): Likewise.
|
|
||||||
* nscd/pwdcache.c (cache_addpw): Likewise.
|
|
||||||
* nscd/servicescache.c (cache_addserv): Likewise. Don't write
|
|
||||||
more than recsize.
|
|
||||||
---
|
|
||||||
nscd/grpcache.c | 6 +++++-
|
|
||||||
nscd/initgrcache.c | 7 ++++++-
|
|
||||||
nscd/pwdcache.c | 8 ++++++--
|
|
||||||
nscd/servicescache.c | 12 ++++++++----
|
|
||||||
4 files changed, 25 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/nscd/grpcache.c b/nscd/grpcache.c
|
|
||||||
index f0dad4d..696162f 100644
|
|
||||||
--- a/nscd/grpcache.c
|
|
||||||
+++ b/nscd/grpcache.c
|
|
||||||
@@ -75,6 +75,7 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
const void *key, struct group *grp, uid_t owner,
|
|
||||||
struct hashentry *const he, struct datahead *dh, int errval)
|
|
||||||
{
|
|
||||||
+ bool all_written = true;
|
|
||||||
ssize_t total;
|
|
||||||
ssize_t written;
|
|
||||||
time_t t = time (NULL);
|
|
||||||
@@ -342,6 +343,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
written = writeall (fd, &dataset->resp, dataset->head.recsize);
|
|
||||||
+
|
|
||||||
+ if (written != dataset->head.recsize)
|
|
||||||
+ all_written = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add the record to the database. But only if it has not been
|
|
||||||
@@ -401,7 +405,7 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (__builtin_expect (written != total, 0) && debug_level > 0)
|
|
||||||
+ if (__builtin_expect (!all_written, 0) && debug_level > 0)
|
|
||||||
{
|
|
||||||
char buf[256];
|
|
||||||
dbg_log (_("short write in %s: %s"), __FUNCTION__,
|
|
||||||
diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c
|
|
||||||
index 255b121..13ee86e 100644
|
|
||||||
--- a/nscd/initgrcache.c
|
|
||||||
+++ b/nscd/initgrcache.c
|
|
||||||
@@ -171,10 +171,12 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
nip = nip->next;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ bool all_written;
|
|
||||||
ssize_t total;
|
|
||||||
ssize_t written;
|
|
||||||
time_t timeout;
|
|
||||||
out:
|
|
||||||
+ all_written = true;
|
|
||||||
timeout = MAX_TIMEOUT_VALUE;
|
|
||||||
if (!any_success)
|
|
||||||
{
|
|
||||||
@@ -379,6 +381,9 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
written = writeall (fd, &dataset->resp, dataset->head.recsize);
|
|
||||||
+
|
|
||||||
+ if (written != dataset->head.recsize)
|
|
||||||
+ all_written = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -405,7 +410,7 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
|
|
||||||
free (groups);
|
|
||||||
|
|
||||||
- if (__builtin_expect (written != total, 0) && debug_level > 0)
|
|
||||||
+ if (__builtin_expect (!all_written, 0) && debug_level > 0)
|
|
||||||
{
|
|
||||||
char buf[256];
|
|
||||||
dbg_log (_("short write in %s: %s"), __FUNCTION__,
|
|
||||||
diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c
|
|
||||||
index a8ea407..d6b91ef 100644
|
|
||||||
--- a/nscd/pwdcache.c
|
|
||||||
+++ b/nscd/pwdcache.c
|
|
||||||
@@ -81,6 +81,7 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
const void *key, struct passwd *pwd, uid_t owner,
|
|
||||||
struct hashentry *const he, struct datahead *dh, int errval)
|
|
||||||
{
|
|
||||||
+ bool all_written = true;
|
|
||||||
ssize_t total;
|
|
||||||
ssize_t written;
|
|
||||||
time_t t = time (NULL);
|
|
||||||
@@ -306,7 +307,7 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
+ db->head->data_size));
|
|
||||||
written = sendfileall (fd, db->wr_fd,
|
|
||||||
(char *) &dataset->resp
|
|
||||||
- - (char *) db->head, dataset->head.recsize );
|
|
||||||
+ - (char *) db->head, dataset->head.recsize);
|
|
||||||
# ifndef __ASSUME_SENDFILE
|
|
||||||
if (written == -1 && errno == ENOSYS)
|
|
||||||
goto use_write;
|
|
||||||
@@ -318,6 +319,9 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
written = writeall (fd, &dataset->resp, dataset->head.recsize);
|
|
||||||
+
|
|
||||||
+ if (written != dataset->head.recsize)
|
|
||||||
+ all_written = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -377,7 +381,7 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (__builtin_expect (written != total, 0) && debug_level > 0)
|
|
||||||
+ if (__builtin_expect (!all_written, 0) && debug_level > 0)
|
|
||||||
{
|
|
||||||
char buf[256];
|
|
||||||
dbg_log (_("short write in %s: %s"), __FUNCTION__,
|
|
||||||
diff --git a/nscd/servicescache.c b/nscd/servicescache.c
|
|
||||||
index 0e7520d..917daa4 100644
|
|
||||||
--- a/nscd/servicescache.c
|
|
||||||
+++ b/nscd/servicescache.c
|
|
||||||
@@ -65,6 +65,7 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
const void *key, struct servent *serv, uid_t owner,
|
|
||||||
struct hashentry *const he, struct datahead *dh, int errval)
|
|
||||||
{
|
|
||||||
+ bool all_written = true;
|
|
||||||
ssize_t total;
|
|
||||||
ssize_t written;
|
|
||||||
time_t t = time (NULL);
|
|
||||||
@@ -290,14 +291,14 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
{
|
|
||||||
assert (db->wr_fd != -1);
|
|
||||||
assert ((char *) &dataset->resp > (char *) db->data);
|
|
||||||
- assert ((char *) &dataset->resp - (char *) db->head
|
|
||||||
+ assert ((char *) dataset - (char *) db->head
|
|
||||||
+ total
|
|
||||||
<= (sizeof (struct database_pers_head)
|
|
||||||
+ db->head->module * sizeof (ref_t)
|
|
||||||
+ db->head->data_size));
|
|
||||||
written = sendfileall (fd, db->wr_fd,
|
|
||||||
(char *) &dataset->resp
|
|
||||||
- - (char *) db->head, total);
|
|
||||||
+ - (char *) db->head, dataset->head.recsize);
|
|
||||||
# ifndef __ASSUME_SENDFILE
|
|
||||||
if (written == -1 && errno == ENOSYS)
|
|
||||||
goto use_write;
|
|
||||||
@@ -308,7 +309,10 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
use_write:
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
- written = writeall (fd, &dataset->resp, total);
|
|
||||||
+ written = writeall (fd, &dataset->resp, dataset->head.recsize);
|
|
||||||
+
|
|
||||||
+ if (written != dataset->head.recsize)
|
|
||||||
+ all_written = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add the record to the database. But only if it has not been
|
|
||||||
@@ -332,7 +336,7 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (__builtin_expect (written != total, 0) && debug_level > 0)
|
|
||||||
+ if (__builtin_expect (!all_written, 0) && debug_level > 0)
|
|
||||||
{
|
|
||||||
char buf[256];
|
|
||||||
dbg_log (_("short write in %s: %s"), __FUNCTION__,
|
|
||||||
--
|
|
||||||
1.8.0.1
|
|
||||||
|
|
@ -15,11 +15,11 @@ Subject: [PATCH] Properly cache the result from looking up the nss database
|
|||||||
sysdeps/posix/getaddrinfo.c | 14 ++++++--------
|
sysdeps/posix/getaddrinfo.c | 14 ++++++--------
|
||||||
3 files changed, 20 insertions(+), 24 deletions(-)
|
3 files changed, 20 insertions(+), 24 deletions(-)
|
||||||
|
|
||||||
diff --git a/nscd/aicache.c b/nscd/aicache.c
|
Index: glibc-2.17.90/nscd/aicache.c
|
||||||
index 23dcf80..17e06e7 100644
|
===================================================================
|
||||||
--- a/nscd/aicache.c
|
--- glibc-2.17.90.orig/nscd/aicache.c
|
||||||
+++ b/nscd/aicache.c
|
+++ glibc-2.17.90/nscd/aicache.c
|
||||||
@@ -85,20 +85,19 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
|
@@ -86,20 +86,19 @@ addhstaiX (struct database_dyn *db, int
|
||||||
}
|
}
|
||||||
|
|
||||||
static service_user *hosts_database;
|
static service_user *hosts_database;
|
||||||
@ -47,11 +47,11 @@ index 23dcf80..17e06e7 100644
|
|||||||
|
|
||||||
if (__res_maybe_init (&_res, 0) == -1)
|
if (__res_maybe_init (&_res, 0) == -1)
|
||||||
no_more = 1;
|
no_more = 1;
|
||||||
diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c
|
Index: glibc-2.17.90/nscd/initgrcache.c
|
||||||
index 462780e..4580884 100644
|
===================================================================
|
||||||
--- a/nscd/initgrcache.c
|
--- glibc-2.17.90.orig/nscd/initgrcache.c
|
||||||
+++ b/nscd/initgrcache.c
|
+++ glibc-2.17.90/nscd/initgrcache.c
|
||||||
@@ -80,17 +80,16 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
|
@@ -80,17 +80,16 @@ addinitgroupsX (struct database_dyn *db,
|
||||||
}
|
}
|
||||||
|
|
||||||
static service_user *group_database;
|
static service_user *group_database;
|
||||||
@ -76,11 +76,11 @@ index 462780e..4580884 100644
|
|||||||
|
|
||||||
/* We always use sysconf even if NGROUPS_MAX is defined. That way, the
|
/* We always use sysconf even if NGROUPS_MAX is defined. That way, the
|
||||||
limit can be raised in the kernel configuration without having to
|
limit can be raised in the kernel configuration without having to
|
||||||
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
|
Index: glibc-2.17.90/sysdeps/posix/getaddrinfo.c
|
||||||
index d368306..4800599 100644
|
===================================================================
|
||||||
--- a/sysdeps/posix/getaddrinfo.c
|
--- glibc-2.17.90.orig/sysdeps/posix/getaddrinfo.c
|
||||||
+++ b/sysdeps/posix/getaddrinfo.c
|
+++ glibc-2.17.90/sysdeps/posix/getaddrinfo.c
|
||||||
@@ -557,7 +557,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
|
@@ -558,7 +558,7 @@ gaih_inet (const char *name, const struc
|
||||||
struct gaih_addrtuple **pat = &at;
|
struct gaih_addrtuple **pat = &at;
|
||||||
int no_data = 0;
|
int no_data = 0;
|
||||||
int no_inet6_data = 0;
|
int no_inet6_data = 0;
|
||||||
@ -89,7 +89,7 @@ index d368306..4800599 100644
|
|||||||
enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
|
enum nss_status inet6_status = NSS_STATUS_UNAVAIL;
|
||||||
enum nss_status status = NSS_STATUS_UNAVAIL;
|
enum nss_status status = NSS_STATUS_UNAVAIL;
|
||||||
int no_more;
|
int no_more;
|
||||||
@@ -790,15 +790,13 @@ gaih_inet (const char *name, const struct gaih_service *service,
|
@@ -791,15 +791,13 @@ gaih_inet (const char *name, const struc
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -110,6 +110,3 @@ index d368306..4800599 100644
|
|||||||
|
|
||||||
/* Initialize configurations. */
|
/* Initialize configurations. */
|
||||||
if (__builtin_expect (!_res_hconf.initialized, 0))
|
if (__builtin_expect (!_res_hconf.initialized, 0))
|
||||||
--
|
|
||||||
1.8.2.3
|
|
||||||
|
|
||||||
|
@ -1,9 +1,22 @@
|
|||||||
Use /var/db for nss_db
|
Use /var/db for nss_db
|
||||||
|
|
||||||
Index: glibc-2.16.90/nss/db-Makefile
|
Index: glibc-2.17.90/Makeconfig
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.90.orig/nss/db-Makefile
|
--- glibc-2.17.90.orig/Makeconfig
|
||||||
+++ glibc-2.16.90/nss/db-Makefile
|
+++ glibc-2.17.90/Makeconfig
|
||||||
|
@@ -259,7 +259,7 @@ inst_sysconfdir = $(install_root)$(sysco
|
||||||
|
|
||||||
|
# Directory for the database files and Makefile for nss_db.
|
||||||
|
ifndef vardbdir
|
||||||
|
-vardbdir = $(localstatedir)/db
|
||||||
|
+vardbdir = /var/lib/misc
|
||||||
|
endif
|
||||||
|
inst_vardbdir = $(install_root)$(vardbdir)
|
||||||
|
|
||||||
|
Index: glibc-2.17.90/nss/db-Makefile
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.17.90.orig/nss/db-Makefile
|
||||||
|
+++ glibc-2.17.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 +26,10 @@ Index: glibc-2.16.90/nss/db-Makefile
|
|||||||
|
|
||||||
AWK = awk
|
AWK = awk
|
||||||
MAKEDB = makedb --quiet
|
MAKEDB = makedb --quiet
|
||||||
Index: glibc-2.16.90/sysdeps/unix/sysv/linux/paths.h
|
Index: glibc-2.17.90/sysdeps/unix/sysv/linux/paths.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.16.90.orig/sysdeps/unix/sysv/linux/paths.h
|
--- glibc-2.17.90.orig/sysdeps/unix/sysv/linux/paths.h
|
||||||
+++ glibc-2.16.90/sysdeps/unix/sysv/linux/paths.h
|
+++ glibc-2.17.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,16 +39,3 @@ Index: glibc-2.16.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.16.90/Makeconfig
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.16.90.orig/Makeconfig
|
|
||||||
+++ glibc-2.16.90/Makeconfig
|
|
||||||
@@ -250,7 +250,7 @@ inst_sysconfdir = $(install_root)$(sysco
|
|
||||||
|
|
||||||
# Directory for the database files and Makefile for nss_db.
|
|
||||||
ifndef vardbdir
|
|
||||||
-vardbdir = $(localstatedir)/db
|
|
||||||
+vardbdir = /var/lib/misc
|
|
||||||
endif
|
|
||||||
inst_vardbdir = $(install_root)$(vardbdir)
|
|
||||||
|
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
* elf/pldd.c (wait_for_ptrace_stop): New function.
|
* elf/pldd.c (wait_for_ptrace_stop): New function.
|
||||||
(main): Call it after attaching.
|
(main): Call it after attaching.
|
||||||
|
|
||||||
Index: glibc-2.17/elf/pldd.c
|
Index: glibc-2.17.90/elf/pldd.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.17.orig/elf/pldd.c
|
--- glibc-2.17.90.orig/elf/pldd.c
|
||||||
+++ glibc-2.17/elf/pldd.c
|
+++ glibc-2.17.90/elf/pldd.c
|
||||||
@@ -34,6 +34,7 @@
|
@@ -34,6 +34,7 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/ptrace.h>
|
#include <sys/ptrace.h>
|
||||||
@ -15,7 +15,7 @@ Index: glibc-2.17/elf/pldd.c
|
|||||||
|
|
||||||
#include <ldsodefs.h>
|
#include <ldsodefs.h>
|
||||||
#include <version.h>
|
#include <version.h>
|
||||||
@@ -85,6 +86,7 @@ static char *exe;
|
@@ -82,6 +83,7 @@ static char *exe;
|
||||||
|
|
||||||
/* Local functions. */
|
/* Local functions. */
|
||||||
static int get_process_info (int dfd, long int pid);
|
static int get_process_info (int dfd, long int pid);
|
||||||
@ -23,7 +23,7 @@ Index: glibc-2.17/elf/pldd.c
|
|||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
@@ -173,6 +175,8 @@ main (int argc, char *argv[])
|
@@ -170,6 +172,8 @@ main (int argc, char *argv[])
|
||||||
tid);
|
tid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ Index: glibc-2.17/elf/pldd.c
|
|||||||
struct thread_list *newp = alloca (sizeof (*newp));
|
struct thread_list *newp = alloca (sizeof (*newp));
|
||||||
newp->tid = tid;
|
newp->tid = tid;
|
||||||
newp->next = thread_list;
|
newp->next = thread_list;
|
||||||
@@ -197,6 +201,24 @@ main (int argc, char *argv[])
|
@@ -194,6 +198,24 @@ main (int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,10 +20,10 @@ Subject: [PATCH] PR15362
|
|||||||
stdio-common/vfprintf.c | 12 ++++++------
|
stdio-common/vfprintf.c | 12 ++++++------
|
||||||
6 files changed, 27 insertions(+), 30 deletions(-)
|
6 files changed, 27 insertions(+), 30 deletions(-)
|
||||||
|
|
||||||
diff --git a/libio/fileops.c b/libio/fileops.c
|
Index: glibc-2.17.90/libio/fileops.c
|
||||||
index 61b61b3..90d5e88 100644
|
===================================================================
|
||||||
--- a/libio/fileops.c
|
--- glibc-2.17.90.orig/libio/fileops.c
|
||||||
+++ b/libio/fileops.c
|
+++ glibc-2.17.90/libio/fileops.c
|
||||||
@@ -1245,13 +1245,12 @@ _IO_new_file_write (f, data, n)
|
@@ -1245,13 +1245,12 @@ _IO_new_file_write (f, data, n)
|
||||||
_IO_ssize_t n;
|
_IO_ssize_t n;
|
||||||
{
|
{
|
||||||
@ -69,10 +69,10 @@ index 61b61b3..90d5e88 100644
|
|||||||
block_size = f->_IO_buf_end - f->_IO_buf_base;
|
block_size = f->_IO_buf_end - f->_IO_buf_base;
|
||||||
do_write = to_do - (block_size >= 128 ? to_do % block_size : 0);
|
do_write = to_do - (block_size >= 128 ? to_do % block_size : 0);
|
||||||
|
|
||||||
diff --git a/libio/iofwrite.c b/libio/iofwrite.c
|
Index: glibc-2.17.90/libio/iofwrite.c
|
||||||
index 81596a6..66542ea 100644
|
===================================================================
|
||||||
--- a/libio/iofwrite.c
|
--- glibc-2.17.90.orig/libio/iofwrite.c
|
||||||
+++ b/libio/iofwrite.c
|
+++ glibc-2.17.90/libio/iofwrite.c
|
||||||
@@ -42,12 +42,12 @@ _IO_fwrite (buf, size, count, fp)
|
@@ -42,12 +42,12 @@ _IO_fwrite (buf, size, count, fp)
|
||||||
if (_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1)
|
if (_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1)
|
||||||
written = _IO_sputn (fp, (const char *) buf, request);
|
written = _IO_sputn (fp, (const char *) buf, request);
|
||||||
@ -91,10 +91,10 @@ index 81596a6..66542ea 100644
|
|||||||
else
|
else
|
||||||
return written / size;
|
return written / size;
|
||||||
}
|
}
|
||||||
diff --git a/libio/iofwrite_u.c b/libio/iofwrite_u.c
|
Index: glibc-2.17.90/libio/iofwrite_u.c
|
||||||
index 4a9d6ca..18dc6d0 100644
|
===================================================================
|
||||||
--- a/libio/iofwrite_u.c
|
--- glibc-2.17.90.orig/libio/iofwrite_u.c
|
||||||
+++ b/libio/iofwrite_u.c
|
+++ glibc-2.17.90/libio/iofwrite_u.c
|
||||||
@@ -44,12 +44,12 @@ fwrite_unlocked (buf, size, count, fp)
|
@@ -44,12 +44,12 @@ fwrite_unlocked (buf, size, count, fp)
|
||||||
if (_IO_fwide (fp, -1) == -1)
|
if (_IO_fwide (fp, -1) == -1)
|
||||||
{
|
{
|
||||||
@ -113,10 +113,10 @@ index 4a9d6ca..18dc6d0 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
return written / size;
|
return written / size;
|
||||||
diff --git a/libio/iopadn.c b/libio/iopadn.c
|
Index: glibc-2.17.90/libio/iopadn.c
|
||||||
index cc93c0f..5ebbcf4 100644
|
===================================================================
|
||||||
--- a/libio/iopadn.c
|
--- glibc-2.17.90.orig/libio/iopadn.c
|
||||||
+++ b/libio/iopadn.c
|
+++ glibc-2.17.90/libio/iopadn.c
|
||||||
@@ -59,7 +59,7 @@ _IO_padn (fp, pad, count)
|
@@ -59,7 +59,7 @@ _IO_padn (fp, pad, count)
|
||||||
w = _IO_sputn (fp, padptr, PADSIZE);
|
w = _IO_sputn (fp, padptr, PADSIZE);
|
||||||
written += w;
|
written += w;
|
||||||
@ -126,10 +126,10 @@ index cc93c0f..5ebbcf4 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i > 0)
|
if (i > 0)
|
||||||
diff --git a/libio/iowpadn.c b/libio/iowpadn.c
|
Index: glibc-2.17.90/libio/iowpadn.c
|
||||||
index d94db71..5600f37 100644
|
===================================================================
|
||||||
--- a/libio/iowpadn.c
|
--- glibc-2.17.90.orig/libio/iowpadn.c
|
||||||
+++ b/libio/iowpadn.c
|
+++ glibc-2.17.90/libio/iowpadn.c
|
||||||
@@ -65,7 +65,7 @@ _IO_wpadn (fp, pad, count)
|
@@ -65,7 +65,7 @@ _IO_wpadn (fp, pad, count)
|
||||||
w = _IO_sputn (fp, (char *) padptr, PADSIZE);
|
w = _IO_sputn (fp, (char *) padptr, PADSIZE);
|
||||||
written += w;
|
written += w;
|
||||||
@ -139,18 +139,18 @@ index d94db71..5600f37 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i > 0)
|
if (i > 0)
|
||||||
diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
|
Index: glibc-2.17.90/stdio-common/vfprintf.c
|
||||||
index c8bcf5a..61d9dc2 100644
|
===================================================================
|
||||||
--- a/stdio-common/vfprintf.c
|
--- glibc-2.17.90.orig/stdio-common/vfprintf.c
|
||||||
+++ b/stdio-common/vfprintf.c
|
+++ glibc-2.17.90/stdio-common/vfprintf.c
|
||||||
@@ -90,13 +90,13 @@
|
@@ -90,13 +90,13 @@
|
||||||
do { \
|
do { \
|
||||||
if (width > 0) \
|
if (width > 0) \
|
||||||
{ \
|
{ \
|
||||||
- unsigned int d = _IO_padn (s, (Padchar), width); \
|
- unsigned int d = _IO_padn (s, (Padchar), width); \
|
||||||
- if (__builtin_expect (d == EOF, 0)) \
|
- if (__glibc_unlikely (d == EOF)) \
|
||||||
+ _IO_ssize_t written = _IO_padn (s, (Padchar), width); \
|
+ _IO_ssize_t written = _IO_padn (s, (Padchar), width); \
|
||||||
+ if (__builtin_expect (written != width, 0)) \
|
+ if (__glibc_unlikely (written != width)) \
|
||||||
{ \
|
{ \
|
||||||
done = -1; \
|
done = -1; \
|
||||||
goto all_done; \
|
goto all_done; \
|
||||||
@ -165,9 +165,9 @@ index c8bcf5a..61d9dc2 100644
|
|||||||
if (width > 0) \
|
if (width > 0) \
|
||||||
{ \
|
{ \
|
||||||
- unsigned int d = _IO_wpadn (s, (Padchar), width); \
|
- unsigned int d = _IO_wpadn (s, (Padchar), width); \
|
||||||
- if (__builtin_expect (d == EOF, 0)) \
|
- if (__glibc_unlikely (d == EOF)) \
|
||||||
+ _IO_ssize_t written = _IO_wpadn (s, (Padchar), width); \
|
+ _IO_ssize_t written = _IO_wpadn (s, (Padchar), width); \
|
||||||
+ if (__builtin_expect (written != width, 0)) \
|
+ if (__glibc_unlikely (written != width)) \
|
||||||
{ \
|
{ \
|
||||||
done = -1; \
|
done = -1; \
|
||||||
goto all_done; \
|
goto all_done; \
|
||||||
|
@ -1,526 +0,0 @@
|
|||||||
From b8a72d0c4ca74e52ea06fa4e56489499489ec158 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Schwab <schwab@suse.de>
|
|
||||||
Date: Thu, 22 Nov 2012 12:57:37 +0100
|
|
||||||
Subject: [PATCH] Extend i486 pthread_cond_timedwait to use futex syscall with
|
|
||||||
absolute timeout
|
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
|
|
||||||
(__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to
|
|
||||||
directly use absolute timeout.
|
|
||||||
---
|
|
||||||
.../sysv/linux/i386/i486/pthread_cond_timedwait.S | 381 +++++++++++++++++----
|
|
||||||
1 file changed, 315 insertions(+), 66 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
|
|
||||||
index 6011f69..b9dbe6b 100644
|
|
||||||
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
|
|
||||||
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
|
|
||||||
@@ -66,6 +66,34 @@ __pthread_cond_timedwait:
|
|
||||||
movl $EINVAL, %eax
|
|
||||||
jae 18f
|
|
||||||
|
|
||||||
+ /* Stack frame:
|
|
||||||
+
|
|
||||||
+ esp + 32
|
|
||||||
+ +--------------------------+
|
|
||||||
+ esp + 24 | timeout value |
|
|
||||||
+ +--------------------------+
|
|
||||||
+ esp + 20 | futex pointer |
|
|
||||||
+ +--------------------------+
|
|
||||||
+ esp + 16 | pi-requeued flag |
|
|
||||||
+ +--------------------------+
|
|
||||||
+ esp + 12 | old broadcast_seq value |
|
|
||||||
+ +--------------------------+
|
|
||||||
+ esp + 4 | old wake_seq value |
|
|
||||||
+ +--------------------------+
|
|
||||||
+ esp + 0 | old cancellation mode |
|
|
||||||
+ +--------------------------+
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
|
|
||||||
+# ifdef PIC
|
|
||||||
+ LOAD_PIC_REG (cx)
|
|
||||||
+ cmpl $0, __have_futex_clock_realtime@GOTOFF(%ecx)
|
|
||||||
+# else
|
|
||||||
+ cmpl $0, __have_futex_clock_realtime
|
|
||||||
+# endif
|
|
||||||
+ je .Lreltmo
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/* Get internal lock. */
|
|
||||||
movl $1, %edx
|
|
||||||
xorl %eax, %eax
|
|
||||||
@@ -96,7 +124,11 @@ __pthread_cond_timedwait:
|
|
||||||
addl $1, cond_futex(%ebx)
|
|
||||||
addl $(1 << nwaiters_shift), cond_nwaiters(%ebx)
|
|
||||||
|
|
||||||
-#define FRAME_SIZE 32
|
|
||||||
+#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
|
|
||||||
+# define FRAME_SIZE 24
|
|
||||||
+#else
|
|
||||||
+# define FRAME_SIZE 32
|
|
||||||
+#endif
|
|
||||||
subl $FRAME_SIZE, %esp
|
|
||||||
cfi_adjust_cfa_offset(FRAME_SIZE)
|
|
||||||
cfi_remember_state
|
|
||||||
@@ -105,60 +137,19 @@ __pthread_cond_timedwait:
|
|
||||||
movl wakeup_seq(%ebx), %edi
|
|
||||||
movl wakeup_seq+4(%ebx), %edx
|
|
||||||
movl broadcast_seq(%ebx), %eax
|
|
||||||
- movl %edi, 12(%esp)
|
|
||||||
- movl %edx, 16(%esp)
|
|
||||||
- movl %eax, 20(%esp)
|
|
||||||
+ movl %edi, 4(%esp)
|
|
||||||
+ movl %edx, 8(%esp)
|
|
||||||
+ movl %eax, 12(%esp)
|
|
||||||
|
|
||||||
/* Reset the pi-requeued flag. */
|
|
||||||
-8: movl $0, 24(%esp)
|
|
||||||
- /* Get the current time. */
|
|
||||||
- movl %ebx, %edx
|
|
||||||
-#ifdef __NR_clock_gettime
|
|
||||||
- /* Get the clock number. */
|
|
||||||
- movl cond_nwaiters(%ebx), %ebx
|
|
||||||
- andl $((1 << nwaiters_shift) - 1), %ebx
|
|
||||||
- /* Only clocks 0 and 1 are allowed so far. Both are handled in the
|
|
||||||
- kernel. */
|
|
||||||
- leal 4(%esp), %ecx
|
|
||||||
- movl $__NR_clock_gettime, %eax
|
|
||||||
- ENTER_KERNEL
|
|
||||||
- movl %edx, %ebx
|
|
||||||
-
|
|
||||||
- /* Compute relative timeout. */
|
|
||||||
- movl (%ebp), %ecx
|
|
||||||
- movl 4(%ebp), %edx
|
|
||||||
- subl 4(%esp), %ecx
|
|
||||||
- subl 8(%esp), %edx
|
|
||||||
-#else
|
|
||||||
- /* Get the current time. */
|
|
||||||
- leal 4(%esp), %ebx
|
|
||||||
- xorl %ecx, %ecx
|
|
||||||
- movl $__NR_gettimeofday, %eax
|
|
||||||
- ENTER_KERNEL
|
|
||||||
- movl %edx, %ebx
|
|
||||||
+ movl $0, 16(%esp)
|
|
||||||
|
|
||||||
- /* Compute relative timeout. */
|
|
||||||
- movl 8(%esp), %eax
|
|
||||||
- movl $1000, %edx
|
|
||||||
- mul %edx /* Milli seconds to nano seconds. */
|
|
||||||
- movl (%ebp), %ecx
|
|
||||||
- movl 4(%ebp), %edx
|
|
||||||
- subl 4(%esp), %ecx
|
|
||||||
- subl %eax, %edx
|
|
||||||
-#endif
|
|
||||||
- jns 12f
|
|
||||||
- addl $1000000000, %edx
|
|
||||||
- subl $1, %ecx
|
|
||||||
-12: testl %ecx, %ecx
|
|
||||||
+ cmpl $0, (%ebp)
|
|
||||||
movl $-ETIMEDOUT, %esi
|
|
||||||
js 6f
|
|
||||||
|
|
||||||
- /* Store relative timeout. */
|
|
||||||
-21: movl %ecx, 4(%esp)
|
|
||||||
- movl %edx, 8(%esp)
|
|
||||||
-
|
|
||||||
- movl cond_futex(%ebx), %edi
|
|
||||||
- movl %edi, 28(%esp)
|
|
||||||
+8: movl cond_futex(%ebx), %edi
|
|
||||||
+ movl %edi, 20(%esp)
|
|
||||||
|
|
||||||
/* Unlock. */
|
|
||||||
LOCK
|
|
||||||
@@ -173,6 +164,7 @@ __pthread_cond_timedwait:
|
|
||||||
4: call __pthread_enable_asynccancel
|
|
||||||
movl %eax, (%esp)
|
|
||||||
|
|
||||||
+ leal (%ebp), %esi
|
|
||||||
#if FUTEX_PRIVATE_FLAG > 255
|
|
||||||
xorl %ecx, %ecx
|
|
||||||
#endif
|
|
||||||
@@ -196,9 +188,7 @@ __pthread_cond_timedwait:
|
|
||||||
jne 42f
|
|
||||||
orl $FUTEX_CLOCK_REALTIME, %ecx
|
|
||||||
|
|
||||||
- /* Requeue-PI uses absolute timeout */
|
|
||||||
-42: leal (%ebp), %esi
|
|
||||||
- movl 28(%esp), %edx
|
|
||||||
+42: movl 20(%esp), %edx
|
|
||||||
addl $cond_futex, %ebx
|
|
||||||
.Ladd_cond_futex_pi:
|
|
||||||
movl $SYS_futex, %eax
|
|
||||||
@@ -209,12 +199,12 @@ __pthread_cond_timedwait:
|
|
||||||
/* Set the pi-requeued flag only if the kernel has returned 0. The
|
|
||||||
kernel does not hold the mutex on ETIMEDOUT or any other error. */
|
|
||||||
cmpl $0, %eax
|
|
||||||
- sete 24(%esp)
|
|
||||||
+ sete 16(%esp)
|
|
||||||
je 41f
|
|
||||||
|
|
||||||
/* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns
|
|
||||||
successfully, it has already locked the mutex for us and the
|
|
||||||
- pi_flag (24(%esp)) is set to denote that fact. However, if another
|
|
||||||
+ pi_flag (16(%esp)) is set to denote that fact. However, if another
|
|
||||||
thread changed the futex value before we entered the wait, the
|
|
||||||
syscall may return an EAGAIN and the mutex is not locked. We go
|
|
||||||
ahead with a success anyway since later we look at the pi_flag to
|
|
||||||
@@ -234,22 +224,28 @@ __pthread_cond_timedwait:
|
|
||||||
xorl %ecx, %ecx
|
|
||||||
|
|
||||||
40: subl $1, %ecx
|
|
||||||
+ movl $0, 16(%esp)
|
|
||||||
#ifdef __ASSUME_PRIVATE_FUTEX
|
|
||||||
andl $FUTEX_PRIVATE_FLAG, %ecx
|
|
||||||
#else
|
|
||||||
andl %gs:PRIVATE_FUTEX, %ecx
|
|
||||||
#endif
|
|
||||||
-#if FUTEX_WAIT != 0
|
|
||||||
- addl $FUTEX_WAIT, %ecx
|
|
||||||
-#endif
|
|
||||||
- leal 4(%esp), %esi
|
|
||||||
- movl 28(%esp), %edx
|
|
||||||
+ addl $FUTEX_WAIT_BITSET, %ecx
|
|
||||||
+ /* The following only works like this because we only support
|
|
||||||
+ two clocks, represented using a single bit. */
|
|
||||||
+ testl $1, cond_nwaiters(%ebx)
|
|
||||||
+ jne 30f
|
|
||||||
+ orl $FUTEX_CLOCK_REALTIME, %ecx
|
|
||||||
+30:
|
|
||||||
+ movl 20(%esp), %edx
|
|
||||||
+ movl $0xffffffff, %ebp
|
|
||||||
addl $cond_futex, %ebx
|
|
||||||
.Ladd_cond_futex:
|
|
||||||
movl $SYS_futex, %eax
|
|
||||||
ENTER_KERNEL
|
|
||||||
subl $cond_futex, %ebx
|
|
||||||
.Lsub_cond_futex:
|
|
||||||
+ movl 28+FRAME_SIZE(%esp), %ebp
|
|
||||||
movl %eax, %esi
|
|
||||||
|
|
||||||
41: movl (%esp), %eax
|
|
||||||
@@ -268,7 +264,7 @@ __pthread_cond_timedwait:
|
|
||||||
jnz 5f
|
|
||||||
|
|
||||||
6: movl broadcast_seq(%ebx), %eax
|
|
||||||
- cmpl 20(%esp), %eax
|
|
||||||
+ cmpl 12(%esp), %eax
|
|
||||||
jne 23f
|
|
||||||
|
|
||||||
movl woken_seq(%ebx), %eax
|
|
||||||
@@ -277,9 +273,9 @@ __pthread_cond_timedwait:
|
|
||||||
movl wakeup_seq(%ebx), %edi
|
|
||||||
movl wakeup_seq+4(%ebx), %edx
|
|
||||||
|
|
||||||
- cmpl 16(%esp), %edx
|
|
||||||
+ cmpl 8(%esp), %edx
|
|
||||||
jne 7f
|
|
||||||
- cmpl 12(%esp), %edi
|
|
||||||
+ cmpl 4(%esp), %edi
|
|
||||||
je 15f
|
|
||||||
|
|
||||||
7: cmpl %ecx, %edx
|
|
||||||
@@ -292,7 +288,7 @@ __pthread_cond_timedwait:
|
|
||||||
|
|
||||||
/* We need to go back to futex_wait. If we're using requeue_pi, then
|
|
||||||
release the mutex we had acquired and go back. */
|
|
||||||
- movl 24(%esp), %edx
|
|
||||||
+ movl 16(%esp), %edx
|
|
||||||
test %edx, %edx
|
|
||||||
jz 8b
|
|
||||||
|
|
||||||
@@ -357,13 +353,13 @@ __pthread_cond_timedwait:
|
|
||||||
|
|
||||||
11: movl 24+FRAME_SIZE(%esp), %eax
|
|
||||||
/* With requeue_pi, the mutex lock is held in the kernel. */
|
|
||||||
- movl 24(%esp), %ecx
|
|
||||||
+ movl 16(%esp), %ecx
|
|
||||||
testl %ecx, %ecx
|
|
||||||
jnz 27f
|
|
||||||
|
|
||||||
call __pthread_mutex_cond_lock
|
|
||||||
26: addl $FRAME_SIZE, %esp
|
|
||||||
- cfi_adjust_cfa_offset(-FRAME_SIZE);
|
|
||||||
+ cfi_adjust_cfa_offset(-FRAME_SIZE)
|
|
||||||
|
|
||||||
/* We return the result of the mutex_lock operation if it failed. */
|
|
||||||
testl %eax, %eax
|
|
||||||
@@ -509,6 +505,245 @@ __pthread_cond_timedwait:
|
|
||||||
#endif
|
|
||||||
call __lll_unlock_wake
|
|
||||||
jmp 11b
|
|
||||||
+ cfi_adjust_cfa_offset(-FRAME_SIZE)
|
|
||||||
+
|
|
||||||
+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
|
|
||||||
+.Lreltmo:
|
|
||||||
+ /* Get internal lock. */
|
|
||||||
+ movl $1, %edx
|
|
||||||
+ xorl %eax, %eax
|
|
||||||
+ LOCK
|
|
||||||
+# if cond_lock == 0
|
|
||||||
+ cmpxchgl %edx, (%ebx)
|
|
||||||
+# else
|
|
||||||
+ cmpxchgl %edx, cond_lock(%ebx)
|
|
||||||
+# endif
|
|
||||||
+ jnz 101f
|
|
||||||
+
|
|
||||||
+ /* Store the reference to the mutex. If there is already a
|
|
||||||
+ different value in there this is a bad user bug. */
|
|
||||||
+102: cmpl $-1, dep_mutex(%ebx)
|
|
||||||
+ movl 24(%esp), %eax
|
|
||||||
+ je 117f
|
|
||||||
+ movl %eax, dep_mutex(%ebx)
|
|
||||||
+
|
|
||||||
+ /* Unlock the mutex. */
|
|
||||||
+117: xorl %edx, %edx
|
|
||||||
+ call __pthread_mutex_unlock_usercnt
|
|
||||||
+
|
|
||||||
+ testl %eax, %eax
|
|
||||||
+ jne 16b
|
|
||||||
+
|
|
||||||
+ addl $1, total_seq(%ebx)
|
|
||||||
+ adcl $0, total_seq+4(%ebx)
|
|
||||||
+ addl $1, cond_futex(%ebx)
|
|
||||||
+ addl $(1 << nwaiters_shift), cond_nwaiters(%ebx)
|
|
||||||
+
|
|
||||||
+ subl $FRAME_SIZE, %esp
|
|
||||||
+ cfi_adjust_cfa_offset(FRAME_SIZE)
|
|
||||||
+
|
|
||||||
+ /* Get and store current wakeup_seq value. */
|
|
||||||
+ movl wakeup_seq(%ebx), %edi
|
|
||||||
+ movl wakeup_seq+4(%ebx), %edx
|
|
||||||
+ movl broadcast_seq(%ebx), %eax
|
|
||||||
+ movl %edi, 4(%esp)
|
|
||||||
+ movl %edx, 8(%esp)
|
|
||||||
+ movl %eax, 12(%esp)
|
|
||||||
+
|
|
||||||
+ /* Reset the pi-requeued flag. */
|
|
||||||
+ movl $0, 16(%esp)
|
|
||||||
+
|
|
||||||
+ /* Get the current time. */
|
|
||||||
+108: movl %ebx, %edx
|
|
||||||
+# ifdef __NR_clock_gettime
|
|
||||||
+ /* Get the clock number. */
|
|
||||||
+ movl cond_nwaiters(%ebx), %ebx
|
|
||||||
+ andl $((1 << nwaiters_shift) - 1), %ebx
|
|
||||||
+ /* Only clocks 0 and 1 are allowed so far. Both are handled in the
|
|
||||||
+ kernel. */
|
|
||||||
+ leal 24(%esp), %ecx
|
|
||||||
+ movl $__NR_clock_gettime, %eax
|
|
||||||
+ ENTER_KERNEL
|
|
||||||
+ movl %edx, %ebx
|
|
||||||
+
|
|
||||||
+ /* Compute relative timeout. */
|
|
||||||
+ movl (%ebp), %ecx
|
|
||||||
+ movl 4(%ebp), %edx
|
|
||||||
+ subl 24(%esp), %ecx
|
|
||||||
+ subl 28(%esp), %edx
|
|
||||||
+# else
|
|
||||||
+ /* Get the current time. */
|
|
||||||
+ leal 24(%esp), %ebx
|
|
||||||
+ xorl %ecx, %ecx
|
|
||||||
+ movl $__NR_gettimeofday, %eax
|
|
||||||
+ ENTER_KERNEL
|
|
||||||
+ movl %edx, %ebx
|
|
||||||
+
|
|
||||||
+ /* Compute relative timeout. */
|
|
||||||
+ movl 28(%esp), %eax
|
|
||||||
+ movl $1000, %edx
|
|
||||||
+ mul %edx /* Milli seconds to nano seconds. */
|
|
||||||
+ movl (%ebp), %ecx
|
|
||||||
+ movl 4(%ebp), %edx
|
|
||||||
+ subl 24(%esp), %ecx
|
|
||||||
+ subl %eax, %edx
|
|
||||||
+# endif
|
|
||||||
+ jns 112f
|
|
||||||
+ addl $1000000000, %edx
|
|
||||||
+ subl $1, %ecx
|
|
||||||
+112: testl %ecx, %ecx
|
|
||||||
+ movl $-ETIMEDOUT, %esi
|
|
||||||
+ js 106f
|
|
||||||
+
|
|
||||||
+ /* Store relative timeout. */
|
|
||||||
+121: movl %ecx, 24(%esp)
|
|
||||||
+ movl %edx, 28(%esp)
|
|
||||||
+
|
|
||||||
+ movl cond_futex(%ebx), %edi
|
|
||||||
+ movl %edi, 20(%esp)
|
|
||||||
+
|
|
||||||
+ /* Unlock. */
|
|
||||||
+ LOCK
|
|
||||||
+# if cond_lock == 0
|
|
||||||
+ subl $1, (%ebx)
|
|
||||||
+# else
|
|
||||||
+ subl $1, cond_lock(%ebx)
|
|
||||||
+# endif
|
|
||||||
+ jne 103f
|
|
||||||
+
|
|
||||||
+.LcleanupSTART2:
|
|
||||||
+104: call __pthread_enable_asynccancel
|
|
||||||
+ movl %eax, (%esp)
|
|
||||||
+
|
|
||||||
+ leal 24(%esp), %esi
|
|
||||||
+# if FUTEX_PRIVATE_FLAG > 255
|
|
||||||
+ xorl %ecx, %ecx
|
|
||||||
+# endif
|
|
||||||
+ cmpl $-1, dep_mutex(%ebx)
|
|
||||||
+ sete %cl
|
|
||||||
+ subl $1, %ecx
|
|
||||||
+# ifdef __ASSUME_PRIVATE_FUTEX
|
|
||||||
+ andl $FUTEX_PRIVATE_FLAG, %ecx
|
|
||||||
+# else
|
|
||||||
+ andl %gs:PRIVATE_FUTEX, %ecx
|
|
||||||
+# endif
|
|
||||||
+# if FUTEX_WAIT != 0
|
|
||||||
+ addl $FUTEX_WAIT, %ecx
|
|
||||||
+# endif
|
|
||||||
+ movl 20(%esp), %edx
|
|
||||||
+ addl $cond_futex, %ebx
|
|
||||||
+.Ladd_cond_futex2:
|
|
||||||
+ movl $SYS_futex, %eax
|
|
||||||
+ ENTER_KERNEL
|
|
||||||
+ subl $cond_futex, %ebx
|
|
||||||
+.Lsub_cond_futex2:
|
|
||||||
+ movl %eax, %esi
|
|
||||||
+
|
|
||||||
+141: movl (%esp), %eax
|
|
||||||
+ call __pthread_disable_asynccancel
|
|
||||||
+.LcleanupEND2:
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ /* Lock. */
|
|
||||||
+ movl $1, %edx
|
|
||||||
+ xorl %eax, %eax
|
|
||||||
+ LOCK
|
|
||||||
+# if cond_lock == 0
|
|
||||||
+ cmpxchgl %edx, (%ebx)
|
|
||||||
+# else
|
|
||||||
+ cmpxchgl %edx, cond_lock(%ebx)
|
|
||||||
+# endif
|
|
||||||
+ jnz 105f
|
|
||||||
+
|
|
||||||
+106: movl broadcast_seq(%ebx), %eax
|
|
||||||
+ cmpl 12(%esp), %eax
|
|
||||||
+ jne 23b
|
|
||||||
+
|
|
||||||
+ movl woken_seq(%ebx), %eax
|
|
||||||
+ movl woken_seq+4(%ebx), %ecx
|
|
||||||
+
|
|
||||||
+ movl wakeup_seq(%ebx), %edi
|
|
||||||
+ movl wakeup_seq+4(%ebx), %edx
|
|
||||||
+
|
|
||||||
+ cmpl 8(%esp), %edx
|
|
||||||
+ jne 107f
|
|
||||||
+ cmpl 4(%esp), %edi
|
|
||||||
+ je 115f
|
|
||||||
+
|
|
||||||
+107: cmpl %ecx, %edx
|
|
||||||
+ jne 9b
|
|
||||||
+ cmp %eax, %edi
|
|
||||||
+ jne 9b
|
|
||||||
+
|
|
||||||
+115: cmpl $-ETIMEDOUT, %esi
|
|
||||||
+ je 28b
|
|
||||||
+
|
|
||||||
+ jmp 8b
|
|
||||||
+
|
|
||||||
+ cfi_adjust_cfa_offset(-FRAME_SIZE)
|
|
||||||
+ /* Initial locking failed. */
|
|
||||||
+101:
|
|
||||||
+# 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
|
|
||||||
+ jmp 102b
|
|
||||||
+
|
|
||||||
+ cfi_adjust_cfa_offset(FRAME_SIZE)
|
|
||||||
+
|
|
||||||
+ /* Unlock in loop requires wakeup. */
|
|
||||||
+103:
|
|
||||||
+# 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
|
|
||||||
+ jmp 104b
|
|
||||||
+
|
|
||||||
+ /* Locking in loop failed. */
|
|
||||||
+105:
|
|
||||||
+# 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
|
|
||||||
+ jmp 106b
|
|
||||||
+ cfi_adjust_cfa_offset(-FRAME_SIZE)
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
.size __pthread_cond_timedwait, .-__pthread_cond_timedwait
|
|
||||||
versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait,
|
|
||||||
@@ -552,7 +787,7 @@ __condvar_tw_cleanup:
|
|
||||||
call __lll_lock_wait
|
|
||||||
|
|
||||||
1: movl broadcast_seq(%ebx), %eax
|
|
||||||
- cmpl 20(%esp), %eax
|
|
||||||
+ cmpl 12(%esp), %eax
|
|
||||||
jne 3f
|
|
||||||
|
|
||||||
/* We increment the wakeup_seq counter only if it is lower than
|
|
||||||
@@ -706,6 +941,20 @@ __condvar_tw_cleanup:
|
|
||||||
.long .LcleanupEND-.Lsub_cond_futex
|
|
||||||
.long __condvar_tw_cleanup-.LSTARTCODE
|
|
||||||
.uleb128 0
|
|
||||||
+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
|
|
||||||
+ .long .LcleanupSTART2-.LSTARTCODE
|
|
||||||
+ .long .Ladd_cond_futex2-.LcleanupSTART2
|
|
||||||
+ .long __condvar_tw_cleanup-.LSTARTCODE
|
|
||||||
+ .uleb128 0
|
|
||||||
+ .long .Ladd_cond_futex2-.LSTARTCODE
|
|
||||||
+ .long .Lsub_cond_futex2-.Ladd_cond_futex2
|
|
||||||
+ .long __condvar_tw_cleanup2-.LSTARTCODE
|
|
||||||
+ .uleb128 0
|
|
||||||
+ .long .Lsub_cond_futex2-.LSTARTCODE
|
|
||||||
+ .long .LcleanupEND2-.Lsub_cond_futex2
|
|
||||||
+ .long __condvar_tw_cleanup-.LSTARTCODE
|
|
||||||
+ .uleb128 0
|
|
||||||
+#endif
|
|
||||||
.long .LcallUR-.LSTARTCODE
|
|
||||||
.long .LENDCODE-.LcallUR
|
|
||||||
.long 0
|
|
||||||
--
|
|
||||||
1.8.0.1
|
|
||||||
|
|
297
readdir_r-overflow.patch
Normal file
297
readdir_r-overflow.patch
Normal file
@ -0,0 +1,297 @@
|
|||||||
|
2013-06-12 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
|
[BZ #14699]
|
||||||
|
* sysdeps/posix/dirstream.h (struct __dirstream): Add errcode
|
||||||
|
member.
|
||||||
|
* sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode
|
||||||
|
member.
|
||||||
|
* sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member.
|
||||||
|
* sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit.
|
||||||
|
Return delayed error code. Remove GETDENTS_64BIT_ALIGNED
|
||||||
|
conditional.
|
||||||
|
* sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define
|
||||||
|
GETDENTS_64BIT_ALIGNED.
|
||||||
|
* sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
|
||||||
|
* manual/filesys.texi (Reading/Closing Directory): Document
|
||||||
|
ENAMETOOLONG return value of readdir_r. Recommend readdir more
|
||||||
|
strongly.
|
||||||
|
* manual/conf.texi (Limits for Files): Add portability note to
|
||||||
|
NAME_MAX, PATH_MAX.
|
||||||
|
(Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX.
|
||||||
|
|
||||||
|
Index: glibc-2.18/manual/conf.texi
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.18.orig/manual/conf.texi
|
||||||
|
+++ glibc-2.18/manual/conf.texi
|
||||||
|
@@ -1149,6 +1149,9 @@ typed ahead as input. @xref{I/O Queues}
|
||||||
|
@deftypevr Macro int NAME_MAX
|
||||||
|
The uniform system limit (if any) for the length of a file name component, not
|
||||||
|
including the terminating null character.
|
||||||
|
+
|
||||||
|
+@strong{Portability Note:} On some systems, @theglibc{} defines
|
||||||
|
+@code{NAME_MAX}, but does not actually enforce this limit.
|
||||||
|
@end deftypevr
|
||||||
|
|
||||||
|
@comment limits.h
|
||||||
|
@@ -1157,6 +1160,9 @@ including the terminating null character
|
||||||
|
The uniform system limit (if any) for the length of an entire file name (that
|
||||||
|
is, the argument given to system calls such as @code{open}), including the
|
||||||
|
terminating null character.
|
||||||
|
+
|
||||||
|
+@strong{Portability Note:} @Theglibc{} does not enforce this limit
|
||||||
|
+even if @code{PATH_MAX} is defined.
|
||||||
|
@end deftypevr
|
||||||
|
|
||||||
|
@cindex limits, pipe buffer size
|
||||||
|
@@ -1476,6 +1482,9 @@ Inquire about the value of @code{POSIX_R
|
||||||
|
Inquire about the value of @code{POSIX_REC_XFER_ALIGN}.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
+@strong{Portability Note:} On some systems, @theglibc{} does not
|
||||||
|
+enforce @code{_PC_NAME_MAX} or @code{_PC_PATH_MAX} limits.
|
||||||
|
+
|
||||||
|
@node Utility Limits
|
||||||
|
@section Utility Program Capacity Limits
|
||||||
|
|
||||||
|
Index: glibc-2.18/manual/filesys.texi
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.18.orig/manual/filesys.texi
|
||||||
|
+++ glibc-2.18/manual/filesys.texi
|
||||||
|
@@ -444,9 +444,9 @@ symbols are declared in the header file
|
||||||
|
@comment POSIX.1
|
||||||
|
@deftypefun {struct dirent *} readdir (DIR *@var{dirstream})
|
||||||
|
This function reads the next entry from the directory. It normally
|
||||||
|
-returns a pointer to a structure containing information about the file.
|
||||||
|
-This structure is statically allocated and can be rewritten by a
|
||||||
|
-subsequent call.
|
||||||
|
+returns a pointer to a structure containing information about the
|
||||||
|
+file. This structure is associated with the @var{dirstream} handle
|
||||||
|
+and can be rewritten by a subsequent call.
|
||||||
|
|
||||||
|
@strong{Portability Note:} On some systems @code{readdir} may not
|
||||||
|
return entries for @file{.} and @file{..}, even though these are always
|
||||||
|
@@ -461,19 +461,59 @@ conditions are defined for this function
|
||||||
|
The @var{dirstream} argument is not valid.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
-@code{readdir} is not thread safe. Multiple threads using
|
||||||
|
-@code{readdir} on the same @var{dirstream} may overwrite the return
|
||||||
|
-value. Use @code{readdir_r} when this is critical.
|
||||||
|
+To distinguish between an end-of-directory condition or an error, you
|
||||||
|
+must set @code{errno} to zero before calling @code{readdir}. To avoid
|
||||||
|
+entering an infinite loop, you should stop reading from the directory
|
||||||
|
+after the first error.
|
||||||
|
+
|
||||||
|
+In POSIX.1-2008, @code{readdir} is not thread-safe. In @theglibc{}
|
||||||
|
+implementation, it is safe to call @code{readdir} concurrently on
|
||||||
|
+different @var{dirstream}s (but multiple threads accessing the same
|
||||||
|
+@var{dirstream} result in undefined behavior). @code{readdir_r} is a
|
||||||
|
+fully thread-safe alternative, but suffers from poor portability (see
|
||||||
|
+below). It is recommended that you use @code{readdir}, with external
|
||||||
|
+locking if multiple threads access the same @var{dirstream}.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@comment dirent.h
|
||||||
|
@comment GNU
|
||||||
|
@deftypefun int readdir_r (DIR *@var{dirstream}, struct dirent *@var{entry}, struct dirent **@var{result})
|
||||||
|
-This function is the reentrant version of @code{readdir}. Like
|
||||||
|
-@code{readdir} it returns the next entry from the directory. But to
|
||||||
|
-prevent conflicts between simultaneously running threads the result is
|
||||||
|
-not stored in statically allocated memory. Instead the argument
|
||||||
|
-@var{entry} points to a place to store the result.
|
||||||
|
+This function is a version of @code{readdir} which performs internal
|
||||||
|
+locking. Like @code{readdir} it returns the next entry from the
|
||||||
|
+directory. To prevent conflicts between simultaneously running
|
||||||
|
+threads the result is stored inside the @var{entry} object.
|
||||||
|
+
|
||||||
|
+@strong{Portability Note:} It is recommended to use @code{readdir}
|
||||||
|
+instead of @code{readdir_r} for the following reasons:
|
||||||
|
+
|
||||||
|
+@itemize @bullet
|
||||||
|
+@item
|
||||||
|
+On systems which do not define @code{NAME_MAX}, it may not be possible
|
||||||
|
+to use @code{readdir_r} safely because the caller does not specify the
|
||||||
|
+length of the buffer for the directory entry.
|
||||||
|
+
|
||||||
|
+@item
|
||||||
|
+On some systems, @code{readdir_r} cannot read directory entries with
|
||||||
|
+very long names. If such a name is encountered, @theglibc{}
|
||||||
|
+implementation of @code{readdir_r} returns with an error code of
|
||||||
|
+@code{ENAMETOOLONG} after the final directory entry has been read. On
|
||||||
|
+other systems, @code{readdir_r} may return successfully, but the
|
||||||
|
+@code{d_name} member may not be NUL-terminated or may be truncated.
|
||||||
|
+
|
||||||
|
+@item
|
||||||
|
+POSIX-1.2008 does not guarantee that @code{readdir} is thread-safe,
|
||||||
|
+even when access to the same @var{dirstream} is serialized. But in
|
||||||
|
+current implementations (including @theglibc{}), it is safe to call
|
||||||
|
+@code{readdir} concurrently on different @var{dirstream}s, so there is
|
||||||
|
+no requirement to use @code{readdir_r} even in multi-threaded
|
||||||
|
+programs.
|
||||||
|
+
|
||||||
|
+@item
|
||||||
|
+It is expected that future versions of POSIX will obsolete
|
||||||
|
+@code{readdir_r} and mandate the level of thread safety for
|
||||||
|
+@code{readdir} which is provided by @theglibc{} and other
|
||||||
|
+implementations today.
|
||||||
|
+@end itemize
|
||||||
|
|
||||||
|
Normally @code{readdir_r} returns zero and sets @code{*@var{result}}
|
||||||
|
to @var{entry}. If there are no more entries in the directory or an
|
||||||
|
@@ -481,15 +521,6 @@ error is detected, @code{readdir_r} sets
|
||||||
|
null pointer and returns a nonzero error code, also stored in
|
||||||
|
@code{errno}, as described for @code{readdir}.
|
||||||
|
|
||||||
|
-@strong{Portability Note:} On some systems @code{readdir_r} may not
|
||||||
|
-return a NUL terminated string for the file name, even when there is no
|
||||||
|
-@code{d_reclen} field in @code{struct dirent} and the file
|
||||||
|
-name is the maximum allowed size. Modern systems all have the
|
||||||
|
-@code{d_reclen} field, and on old systems multi-threading is not
|
||||||
|
-critical. In any case there is no such problem with the @code{readdir}
|
||||||
|
-function, so that even on systems without the @code{d_reclen} member one
|
||||||
|
-could use multiple threads by using external locking.
|
||||||
|
-
|
||||||
|
It is also important to look at the definition of the @code{struct
|
||||||
|
dirent} type. Simply passing a pointer to an object of this type for
|
||||||
|
the second parameter of @code{readdir_r} might not be enough. Some
|
||||||
|
Index: glibc-2.18/sysdeps/posix/dirstream.h
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.18.orig/sysdeps/posix/dirstream.h
|
||||||
|
+++ glibc-2.18/sysdeps/posix/dirstream.h
|
||||||
|
@@ -39,6 +39,8 @@ struct __dirstream
|
||||||
|
|
||||||
|
off_t filepos; /* Position of next entry to read. */
|
||||||
|
|
||||||
|
+ int errcode; /* Delayed error code. */
|
||||||
|
+
|
||||||
|
/* Directory block. */
|
||||||
|
char data[0] __attribute__ ((aligned (__alignof__ (void*))));
|
||||||
|
};
|
||||||
|
Index: glibc-2.18/sysdeps/posix/opendir.c
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.18.orig/sysdeps/posix/opendir.c
|
||||||
|
+++ glibc-2.18/sysdeps/posix/opendir.c
|
||||||
|
@@ -231,6 +231,7 @@ __alloc_dir (int fd, bool close_fd, int
|
||||||
|
dirp->size = 0;
|
||||||
|
dirp->offset = 0;
|
||||||
|
dirp->filepos = 0;
|
||||||
|
+ dirp->errcode = 0;
|
||||||
|
|
||||||
|
return dirp;
|
||||||
|
}
|
||||||
|
Index: glibc-2.18/sysdeps/posix/readdir_r.c
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.18.orig/sysdeps/posix/readdir_r.c
|
||||||
|
+++ glibc-2.18/sysdeps/posix/readdir_r.c
|
||||||
|
@@ -40,6 +40,7 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *ent
|
||||||
|
DIRENT_TYPE *dp;
|
||||||
|
size_t reclen;
|
||||||
|
const int saved_errno = errno;
|
||||||
|
+ int ret;
|
||||||
|
|
||||||
|
__libc_lock_lock (dirp->lock);
|
||||||
|
|
||||||
|
@@ -70,10 +71,10 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *ent
|
||||||
|
bytes = 0;
|
||||||
|
__set_errno (saved_errno);
|
||||||
|
}
|
||||||
|
+ if (bytes < 0)
|
||||||
|
+ dirp->errcode = errno;
|
||||||
|
|
||||||
|
dp = NULL;
|
||||||
|
- /* Reclen != 0 signals that an error occurred. */
|
||||||
|
- reclen = bytes != 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
dirp->size = (size_t) bytes;
|
||||||
|
@@ -106,29 +107,46 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *ent
|
||||||
|
dirp->filepos += reclen;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- /* Skip deleted files. */
|
||||||
|
+#ifdef NAME_MAX
|
||||||
|
+ if (reclen > offsetof (DIRENT_TYPE, d_name) + NAME_MAX + 1)
|
||||||
|
+ {
|
||||||
|
+ /* The record is very long. It could still fit into the
|
||||||
|
+ caller-supplied buffer if we can skip padding at the
|
||||||
|
+ end. */
|
||||||
|
+ size_t namelen = _D_EXACT_NAMLEN (dp);
|
||||||
|
+ if (namelen <= NAME_MAX)
|
||||||
|
+ reclen = offsetof (DIRENT_TYPE, d_name) + namelen + 1;
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ /* The name is too long. Ignore this file. */
|
||||||
|
+ dirp->errcode = ENAMETOOLONG;
|
||||||
|
+ dp->d_ino = 0;
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ /* Skip deleted and ignored files. */
|
||||||
|
}
|
||||||
|
while (dp->d_ino == 0);
|
||||||
|
|
||||||
|
if (dp != NULL)
|
||||||
|
{
|
||||||
|
-#ifdef GETDENTS_64BIT_ALIGNED
|
||||||
|
- /* The d_reclen value might include padding which is not part of
|
||||||
|
- the DIRENT_TYPE data structure. */
|
||||||
|
- reclen = MIN (reclen,
|
||||||
|
- offsetof (DIRENT_TYPE, d_name) + sizeof (dp->d_name));
|
||||||
|
-#endif
|
||||||
|
*result = memcpy (entry, dp, reclen);
|
||||||
|
-#ifdef GETDENTS_64BIT_ALIGNED
|
||||||
|
+#ifdef _DIRENT_HAVE_D_RECLEN
|
||||||
|
entry->d_reclen = reclen;
|
||||||
|
#endif
|
||||||
|
+ ret = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
- *result = NULL;
|
||||||
|
+ {
|
||||||
|
+ *result = NULL;
|
||||||
|
+ ret = dirp->errcode;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
__libc_lock_unlock (dirp->lock);
|
||||||
|
|
||||||
|
- return dp != NULL ? 0 : reclen ? errno : 0;
|
||||||
|
+ return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __READDIR_R_ALIAS
|
||||||
|
Index: glibc-2.18/sysdeps/posix/rewinddir.c
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.18.orig/sysdeps/posix/rewinddir.c
|
||||||
|
+++ glibc-2.18/sysdeps/posix/rewinddir.c
|
||||||
|
@@ -33,6 +33,7 @@ rewinddir (dirp)
|
||||||
|
dirp->filepos = 0;
|
||||||
|
dirp->offset = 0;
|
||||||
|
dirp->size = 0;
|
||||||
|
+ dirp->errcode = 0;
|
||||||
|
#ifndef NOT_IN_libc
|
||||||
|
__libc_lock_unlock (dirp->lock);
|
||||||
|
#endif
|
||||||
|
Index: glibc-2.18/sysdeps/unix/sysv/linux/i386/readdir64_r.c
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.18.orig/sysdeps/unix/sysv/linux/i386/readdir64_r.c
|
||||||
|
+++ glibc-2.18/sysdeps/unix/sysv/linux/i386/readdir64_r.c
|
||||||
|
@@ -18,7 +18,6 @@
|
||||||
|
#define __READDIR_R __readdir64_r
|
||||||
|
#define __GETDENTS __getdents64
|
||||||
|
#define DIRENT_TYPE struct dirent64
|
||||||
|
-#define GETDENTS_64BIT_ALIGNED 1
|
||||||
|
|
||||||
|
#include <sysdeps/posix/readdir_r.c>
|
||||||
|
|
||||||
|
Index: glibc-2.18/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.18.orig/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c
|
||||||
|
+++ glibc-2.18/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c
|
||||||
|
@@ -1,5 +1,4 @@
|
||||||
|
#define readdir64_r __no_readdir64_r_decl
|
||||||
|
-#define GETDENTS_64BIT_ALIGNED 1
|
||||||
|
#include <sysdeps/posix/readdir_r.c>
|
||||||
|
#undef readdir64_r
|
||||||
|
weak_alias (__readdir_r, readdir64_r)
|
@ -1,161 +0,0 @@
|
|||||||
From a445af0bc722d620afed7683cd320c0e4c7c6059 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Schwab <schwab@suse.de>
|
|
||||||
Date: Tue, 29 Jan 2013 14:45:15 +0100
|
|
||||||
Subject: [PATCH] Fix buffer overrun in regexp matcher
|
|
||||||
|
|
||||||
[BZ #15078]
|
|
||||||
* posix/regexec.c (extend_buffers): Add parameter min_len.
|
|
||||||
(check_matching): Pass minimum needed length.
|
|
||||||
(clean_state_log_if_needed): Likewise.
|
|
||||||
(get_subexp): Likewise.
|
|
||||||
* posix/Makefile (tests): Add bug-regex34.
|
|
||||||
(bug-regex34-ENV): Define.
|
|
||||||
* posix/bug-regex34.c: New file.
|
|
||||||
|
|
||||||
---
|
|
||||||
ChangeLog | 9 +++++++++
|
|
||||||
NEWS | 3 ++-
|
|
||||||
posix/Makefile | 3 ++-
|
|
||||||
posix/bug-regex34.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
posix/regexec.c | 16 +++++++++-------
|
|
||||||
5 files changed, 68 insertions(+), 9 deletions(-)
|
|
||||||
create mode 100644 posix/bug-regex34.c
|
|
||||||
|
|
||||||
diff --git a/posix/Makefile b/posix/Makefile
|
|
||||||
index 88d409f..2cacd21 100644
|
|
||||||
--- a/posix/Makefile
|
|
||||||
+++ b/posix/Makefile
|
|
||||||
@@ -86,7 +86,7 @@ tests := tstgetopt testfnm runtests runptests \
|
|
||||||
tst-rfc3484-3 \
|
|
||||||
tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset \
|
|
||||||
bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \
|
|
||||||
- bug-getopt5 tst-getopt_long1
|
|
||||||
+ bug-getopt5 tst-getopt_long1 bug-regex34
|
|
||||||
xtests := bug-ga2
|
|
||||||
ifeq (yes,$(build-shared))
|
|
||||||
test-srcs := globtest
|
|
||||||
@@ -199,6 +199,7 @@ bug-regex26-ENV = LOCPATH=$(common-objpfx)localedata
|
|
||||||
bug-regex30-ENV = LOCPATH=$(common-objpfx)localedata
|
|
||||||
bug-regex32-ENV = LOCPATH=$(common-objpfx)localedata
|
|
||||||
bug-regex33-ENV = LOCPATH=$(common-objpfx)localedata
|
|
||||||
+bug-regex34-ENV = LOCPATH=$(common-objpfx)localedata
|
|
||||||
tst-rxspencer-ARGS = --utf8 rxspencer/tests
|
|
||||||
tst-rxspencer-ENV = LOCPATH=$(common-objpfx)localedata
|
|
||||||
tst-pcre-ARGS = PCRE.tests
|
|
||||||
diff --git a/posix/bug-regex34.c b/posix/bug-regex34.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..bb3b613
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/posix/bug-regex34.c
|
|
||||||
@@ -0,0 +1,46 @@
|
|
||||||
+/* Test re_search with multi-byte characters in UTF-8.
|
|
||||||
+ Copyright (C) 2013 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/>. */
|
|
||||||
+
|
|
||||||
+#define _GNU_SOURCE 1
|
|
||||||
+#include <stdio.h>
|
|
||||||
+#include <string.h>
|
|
||||||
+#include <locale.h>
|
|
||||||
+#include <regex.h>
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
+do_test (void)
|
|
||||||
+{
|
|
||||||
+ struct re_pattern_buffer r;
|
|
||||||
+ /* ကျွန်ုပ်x */
|
|
||||||
+ const char *s = "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax";
|
|
||||||
+
|
|
||||||
+ if (setlocale (LC_ALL, "en_US.UTF-8") == NULL)
|
|
||||||
+ {
|
|
||||||
+ puts ("setlocale failed");
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+ memset (&r, 0, sizeof (r));
|
|
||||||
+
|
|
||||||
+ re_compile_pattern ("[^x]x", 5, &r);
|
|
||||||
+ /* This was triggering a buffer overflow. */
|
|
||||||
+ re_search (&r, s, strlen (s), 0, strlen (s), 0);
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#define TEST_FUNCTION do_test ()
|
|
||||||
+#include "../test-skeleton.c"
|
|
||||||
diff --git a/posix/regexec.c b/posix/regexec.c
|
|
||||||
index 7f2de85..5ca2bf6 100644
|
|
||||||
--- a/posix/regexec.c
|
|
||||||
+++ b/posix/regexec.c
|
|
||||||
@@ -197,7 +197,7 @@ static int group_nodes_into_DFAstates (const re_dfa_t *dfa,
|
|
||||||
static int check_node_accept (const re_match_context_t *mctx,
|
|
||||||
const re_token_t *node, int idx)
|
|
||||||
internal_function;
|
|
||||||
-static reg_errcode_t extend_buffers (re_match_context_t *mctx)
|
|
||||||
+static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len)
|
|
||||||
internal_function;
|
|
||||||
|
|
||||||
/* Entry point for POSIX code. */
|
|
||||||
@@ -1160,7 +1160,7 @@ check_matching (re_match_context_t *mctx, int fl_longest_match,
|
|
||||||
|| (BE (next_char_idx >= mctx->input.valid_len, 0)
|
|
||||||
&& mctx->input.valid_len < mctx->input.len))
|
|
||||||
{
|
|
||||||
- err = extend_buffers (mctx);
|
|
||||||
+ err = extend_buffers (mctx, next_char_idx + 1);
|
|
||||||
if (BE (err != REG_NOERROR, 0))
|
|
||||||
{
|
|
||||||
assert (err == REG_ESPACE);
|
|
||||||
@@ -1738,7 +1738,7 @@ clean_state_log_if_needed (re_match_context_t *mctx, int next_state_log_idx)
|
|
||||||
&& mctx->input.valid_len < mctx->input.len))
|
|
||||||
{
|
|
||||||
reg_errcode_t err;
|
|
||||||
- err = extend_buffers (mctx);
|
|
||||||
+ err = extend_buffers (mctx, next_state_log_idx + 1);
|
|
||||||
if (BE (err != REG_NOERROR, 0))
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
@@ -2792,7 +2792,7 @@ get_subexp (re_match_context_t *mctx, int bkref_node, int bkref_str_idx)
|
|
||||||
if (bkref_str_off >= mctx->input.len)
|
|
||||||
break;
|
|
||||||
|
|
||||||
- err = extend_buffers (mctx);
|
|
||||||
+ err = extend_buffers (mctx, bkref_str_off + 1);
|
|
||||||
if (BE (err != REG_NOERROR, 0))
|
|
||||||
return err;
|
|
||||||
|
|
||||||
@@ -4102,7 +4102,7 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node,
|
|
||||||
|
|
||||||
static reg_errcode_t
|
|
||||||
internal_function __attribute_warn_unused_result__
|
|
||||||
-extend_buffers (re_match_context_t *mctx)
|
|
||||||
+extend_buffers (re_match_context_t *mctx, int min_len)
|
|
||||||
{
|
|
||||||
reg_errcode_t ret;
|
|
||||||
re_string_t *pstr = &mctx->input;
|
|
||||||
@@ -4111,8 +4111,10 @@ extend_buffers (re_match_context_t *mctx)
|
|
||||||
if (BE (INT_MAX / 2 / sizeof (re_dfastate_t *) <= pstr->bufs_len, 0))
|
|
||||||
return REG_ESPACE;
|
|
||||||
|
|
||||||
- /* Double the lengthes of the buffers. */
|
|
||||||
- ret = re_string_realloc_buffers (pstr, MIN (pstr->len, pstr->bufs_len * 2));
|
|
||||||
+ /* Double the lengthes of the buffers, but allocate at least MIN_LEN. */
|
|
||||||
+ ret = re_string_realloc_buffers (pstr,
|
|
||||||
+ MAX (min_len,
|
|
||||||
+ MIN (pstr->len, pstr->bufs_len * 2)));
|
|
||||||
if (BE (ret != REG_NOERROR, 0))
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.2.3
|
|
||||||
|
|
288
rtlddir.patch
288
rtlddir.patch
@ -1,288 +0,0 @@
|
|||||||
From aaa8cb4b43511c62b11ac6f10e9beea3d5035a68 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Schwab <schwab@suse.de>
|
|
||||||
Date: Mon, 18 Mar 2013 12:44:47 +0100
|
|
||||||
Subject: [PATCH 1/3] Add support for rtld directory different from slib
|
|
||||||
directory
|
|
||||||
|
|
||||||
* configure.in: Substitute libc_cv_rtlddir.
|
|
||||||
* configure: Regenerate.
|
|
||||||
* config.make.in (rtlddir): Set from libc_cv_rtlddir.
|
|
||||||
* Makeconfig (rtlddir, inst_rtlddir): New variables.
|
|
||||||
(rtld-LDFLAGS): Use them with $(rtld-installed-name).
|
|
||||||
* elf/Makefile (install-others, CFLAGS-interp.c)
|
|
||||||
(ldso_install, common-ldd-rewrite): Likewise.
|
|
||||||
($(inst_rtlddir)/$(rtld-installed-name)): Renamed from
|
|
||||||
$(inst_slibdir)/$(rtld-installed-name).
|
|
||||||
* scripts/rellns-sh: Add -p option.
|
|
||||||
* Makerules (make-shlib-link): Use rellns-sh to get relative name
|
|
||||||
for source.
|
|
||||||
|
|
||||||
---
|
|
||||||
ChangeLog | 15 +++++++++++++++
|
|
||||||
Makeconfig | 10 ++++++++--
|
|
||||||
Makerules | 4 ++--
|
|
||||||
config.make.in | 1 +
|
|
||||||
configure | 2 ++
|
|
||||||
configure.in | 1 +
|
|
||||||
elf/Makefile | 11 ++++++-----
|
|
||||||
scripts/rellns-sh | 17 +++++++++++++++--
|
|
||||||
8 files changed, 50 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
Index: glibc-2.17/Makeconfig
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/Makeconfig
|
|
||||||
+++ glibc-2.17/Makeconfig
|
|
||||||
@@ -148,12 +148,18 @@ libdir = $(exec_prefix)/lib
|
|
||||||
endif
|
|
||||||
inst_libdir = $(install_root)$(libdir)
|
|
||||||
|
|
||||||
-# Where to install the shared library and dynamic linker.
|
|
||||||
+# Where to install the shared library.
|
|
||||||
ifndef slibdir
|
|
||||||
slibdir = $(exec_prefix)/lib
|
|
||||||
endif
|
|
||||||
inst_slibdir = $(install_root)$(slibdir)
|
|
||||||
|
|
||||||
+# Where to install the dynamic linker.
|
|
||||||
+ifndef rtlddir
|
|
||||||
+rtlddir = $(slibdir)
|
|
||||||
+endif
|
|
||||||
+inst_rtlddir = $(install_root)$(rtlddir)
|
|
||||||
+
|
|
||||||
# Prefix to put on files installed in $(libdir). For libraries `libNAME.a',
|
|
||||||
# the prefix is spliced between `lib' and the name, so the linker switch
|
|
||||||
# `-l$(libprefix)NAME' finds the library; for other files the prefix is
|
|
||||||
@@ -443,7 +449,7 @@ ifndef +link-bounded
|
|
||||||
endif
|
|
||||||
ifndef config-LDFLAGS
|
|
||||||
ifeq (yes,$(build-shared))
|
|
||||||
-config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name)
|
|
||||||
+config-LDFLAGS = -Wl,-dynamic-linker=$(rtlddir)/$(rtld-installed-name)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifndef link-libc
|
|
||||||
Index: glibc-2.17/Makerules
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/Makerules
|
|
||||||
+++ glibc-2.17/Makerules
|
|
||||||
@@ -873,7 +873,7 @@ ifeq (no,$(cross-compiling))
|
|
||||||
symbolic-link-prog := $(common-objpfx)elf/sln
|
|
||||||
symbolic-link-list := $(common-objpfx)elf/symlink.list
|
|
||||||
define make-shlib-link
|
|
||||||
-echo $(<F) $@ >> $(symbolic-link-list)
|
|
||||||
+echo `$(..)scripts/rellns-sh -p $< $@` $@ >> $(symbolic-link-list)
|
|
||||||
endef
|
|
||||||
else # cross-compiling
|
|
||||||
# We need a definition that can be used by elf/Makefile's install rules.
|
|
||||||
@@ -883,7 +883,7 @@ endif
|
|
||||||
ifndef make-shlib-link
|
|
||||||
define make-shlib-link
|
|
||||||
rm -f $@
|
|
||||||
-$(LN_S) $(<F) $@
|
|
||||||
+$(LN_S) `$(..)scripts/rellns-sh -p $< $@` $@
|
|
||||||
endef
|
|
||||||
endif
|
|
||||||
|
|
||||||
@@ -937,7 +937,7 @@ $(inst_libdir)/libc.so: $(common-objpfx)
|
|
||||||
cat $<; \
|
|
||||||
echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
|
|
||||||
'$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
|
|
||||||
- ' AS_NEEDED (' $(slibdir)/$(rtld-installed-name) ') )' \
|
|
||||||
+ ' AS_NEEDED (' $(rtlddir)/$(rtld-installed-name) ') )' \
|
|
||||||
) > $@.new
|
|
||||||
mv -f $@.new $@
|
|
||||||
|
|
||||||
Index: glibc-2.17/config.make.in
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/config.make.in
|
|
||||||
+++ glibc-2.17/config.make.in
|
|
||||||
@@ -11,6 +11,7 @@ exec_prefix = @exec_prefix@
|
|
||||||
datadir = @datadir@
|
|
||||||
libdir = @libdir@
|
|
||||||
slibdir = @libc_cv_slibdir@
|
|
||||||
+rtlddir = @libc_cv_rtlddir@
|
|
||||||
localedir = @libc_cv_localedir@
|
|
||||||
sysconfdir = @libc_cv_sysconfdir@
|
|
||||||
libexecdir = @libexecdir@
|
|
||||||
Index: glibc-2.17/configure
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/configure
|
|
||||||
+++ glibc-2.17/configure
|
|
||||||
@@ -594,6 +594,7 @@ libc_cv_rootsbindir
|
|
||||||
libc_cv_localstatedir
|
|
||||||
libc_cv_sysconfdir
|
|
||||||
libc_cv_localedir
|
|
||||||
+libc_cv_rtlddir
|
|
||||||
libc_cv_slibdir
|
|
||||||
old_glibc_headers
|
|
||||||
use_nscd
|
|
||||||
@@ -7584,6 +7585,7 @@ fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Index: glibc-2.17/configure.in
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/configure.in
|
|
||||||
+++ glibc-2.17/configure.in
|
|
||||||
@@ -2117,6 +2117,7 @@ fi
|
|
||||||
AC_SUBST(old_glibc_headers)
|
|
||||||
|
|
||||||
AC_SUBST(libc_cv_slibdir)
|
|
||||||
+AC_SUBST(libc_cv_rtlddir)
|
|
||||||
AC_SUBST(libc_cv_localedir)
|
|
||||||
AC_SUBST(libc_cv_sysconfdir)
|
|
||||||
AC_SUBST(libc_cv_localstatedir)
|
|
||||||
Index: glibc-2.17/elf/Makefile
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/elf/Makefile
|
|
||||||
+++ glibc-2.17/elf/Makefile
|
|
||||||
@@ -66,7 +66,7 @@ endif
|
|
||||||
ifeq (yes,$(build-shared))
|
|
||||||
extra-objs = $(all-rtld-routines:%=%.os) soinit.os sofini.os interp.os
|
|
||||||
generated += librtld.os dl-allobjs.os ld.so ldd
|
|
||||||
-install-others = $(inst_slibdir)/$(rtld-installed-name)
|
|
||||||
+install-others = $(inst_rtlddir)/$(rtld-installed-name)
|
|
||||||
install-bin-script = ldd
|
|
||||||
endif
|
|
||||||
|
|
||||||
@@ -340,7 +340,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld
|
|
||||||
| $(AWK) '($$7 ~ /^UND(|EF)$$/ && $$1 != "0:" && $$4 != "REGISTER") { print; p=1 } END { exit p != 0 }'
|
|
||||||
|
|
||||||
# interp.c exists just to get this string into the libraries.
|
|
||||||
-CFLAGS-interp.c = -D'RUNTIME_LINKER="$(slibdir)/$(rtld-installed-name)"' \
|
|
||||||
+CFLAGS-interp.c = -D'RUNTIME_LINKER="$(rtlddir)/$(rtld-installed-name)"' \
|
|
||||||
-DNOT_IN_libc=1
|
|
||||||
$(objpfx)interp.os: $(common-objpfx)config.make
|
|
||||||
|
|
||||||
@@ -372,18 +372,19 @@ $(inst_slibdir)/$(rtld-version-installed
|
|
||||||
$(make-target-directory)
|
|
||||||
$(do-install-program)
|
|
||||||
|
|
||||||
-$(inst_slibdir)/$(rtld-installed-name): \
|
|
||||||
+$(inst_rtlddir)/$(rtld-installed-name): \
|
|
||||||
$(inst_slibdir)/$(rtld-version-installed-name) \
|
|
||||||
$(inst_slibdir)/libc-$(version).so
|
|
||||||
+ $(make-target-directory)
|
|
||||||
$(make-shlib-link)
|
|
||||||
|
|
||||||
# Special target called by parent to install just the dynamic linker.
|
|
||||||
.PHONY: ldso_install
|
|
||||||
-ldso_install: $(inst_slibdir)/$(rtld-installed-name)
|
|
||||||
+ldso_install: $(inst_rtlddir)/$(rtld-installed-name)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
-common-ldd-rewrite = -e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \
|
|
||||||
+common-ldd-rewrite = -e 's%@RTLD@%$(rtlddir)/$(rtld-installed-name)%g' \
|
|
||||||
-e 's%@VERSION@%$(version)%g' \
|
|
||||||
-e 's|@PKGVERSION@|$(PKGVERSION)|g' \
|
|
||||||
-e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|g'
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/configure
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/aarch64/configure
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/configure
|
|
||||||
@@ -7,6 +7,7 @@ test -n "$libc_cv_slibdir" ||
|
|
||||||
case "$prefix" in
|
|
||||||
/usr | /usr/)
|
|
||||||
libc_cv_slibdir="/lib64"
|
|
||||||
+ libc_cv_rtlddir="/lib"
|
|
||||||
if test "$libdir" = '${exec_prefix}/lib'; then
|
|
||||||
libdir='${exec_prefix}/lib64';
|
|
||||||
# Locale data can be shared between 32bit and 64bit libraries
|
|
||||||
Index: glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/configure.in
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/ports/sysdeps/unix/sysv/linux/aarch64/configure.in
|
|
||||||
+++ glibc-2.17/ports/sysdeps/unix/sysv/linux/aarch64/configure.in
|
|
||||||
@@ -7,6 +7,7 @@ test -n "$libc_cv_slibdir" ||
|
|
||||||
case "$prefix" in
|
|
||||||
/usr | /usr/)
|
|
||||||
libc_cv_slibdir="/lib64"
|
|
||||||
+ libc_cv_rtlddir="/lib"
|
|
||||||
if test "$libdir" = '${exec_prefix}/lib'; then
|
|
||||||
libdir='${exec_prefix}/lib64';
|
|
||||||
# Locale data can be shared between 32bit and 64bit libraries
|
|
||||||
Index: glibc-2.17/scripts/rellns-sh
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/scripts/rellns-sh
|
|
||||||
+++ glibc-2.17/scripts/rellns-sh
|
|
||||||
@@ -16,8 +16,17 @@
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
+# With -p, instead of creating the link print the computed relative link
|
|
||||||
+# name.
|
|
||||||
+do_print=false
|
|
||||||
+case $1 in
|
|
||||||
+ -p)
|
|
||||||
+ do_print=true
|
|
||||||
+ shift
|
|
||||||
+ ;;
|
|
||||||
+esac
|
|
||||||
if test $# -ne 2; then
|
|
||||||
- echo "Usage: rellns SOURCE DEST" >&2
|
|
||||||
+ echo "Usage: rellns [-p] SOURCE DEST" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
@@ -70,4 +79,8 @@ while test -n "$from"; do
|
|
||||||
from=`echo $from | sed 's%^[^/]*/*%%'`
|
|
||||||
done
|
|
||||||
|
|
||||||
-ln -s $rfrom$to $2
|
|
||||||
+if $do_print; then
|
|
||||||
+ echo "$rfrom$to"
|
|
||||||
+else
|
|
||||||
+ ln -s $rfrom$to $2
|
|
||||||
+fi
|
|
||||||
Index: glibc-2.17/sysdeps/gnu/configure
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/gnu/configure
|
|
||||||
+++ glibc-2.17/sysdeps/gnu/configure
|
|
||||||
@@ -9,12 +9,17 @@
|
|
||||||
case "$prefix" in
|
|
||||||
/usr | /usr/)
|
|
||||||
# 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib.
|
|
||||||
- # Allow earlier configure scripts to handle libc_cv_slibdir, libdir,
|
|
||||||
- # and libc_cv_localedir.
|
|
||||||
+ # Allow earlier configure scripts to handle libc_cv_slibdir,
|
|
||||||
+ # libc_cv_rtlddir, libdir, and libc_cv_localedir.
|
|
||||||
test -n "$libc_cv_slibdir" || \
|
|
||||||
case $machine in
|
|
||||||
sparc/sparc64 | x86_64* | powerpc/powerpc64 | s390/s390-64)
|
|
||||||
libc_cv_slibdir=/lib64
|
|
||||||
+ case $machine in
|
|
||||||
+ s390/s390-64)
|
|
||||||
+ libc_cv_rtlddir=/lib
|
|
||||||
+ ;;
|
|
||||||
+ esac
|
|
||||||
if test "$libdir" = '${exec_prefix}/lib'; then
|
|
||||||
libdir='${exec_prefix}/lib64';
|
|
||||||
# Locale data can be shared between 32bit and 64bit libraries
|
|
||||||
Index: glibc-2.17/sysdeps/gnu/configure.in
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.17.orig/sysdeps/gnu/configure.in
|
|
||||||
+++ glibc-2.17/sysdeps/gnu/configure.in
|
|
||||||
@@ -9,12 +9,17 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the
|
|
||||||
case "$prefix" in
|
|
||||||
/usr | /usr/)
|
|
||||||
# 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib.
|
|
||||||
- # Allow earlier configure scripts to handle libc_cv_slibdir, libdir,
|
|
||||||
- # and libc_cv_localedir.
|
|
||||||
+ # Allow earlier configure scripts to handle libc_cv_slibdir,
|
|
||||||
+ # libc_cv_rtlddir, libdir, and libc_cv_localedir.
|
|
||||||
test -n "$libc_cv_slibdir" || \
|
|
||||||
case $machine in
|
|
||||||
sparc/sparc64 | x86_64* | powerpc/powerpc64 | s390/s390-64)
|
|
||||||
libc_cv_slibdir=/lib64
|
|
||||||
+ case $machine in
|
|
||||||
+ s390/s390-64)
|
|
||||||
+ libc_cv_rtlddir=/lib
|
|
||||||
+ ;;
|
|
||||||
+ esac
|
|
||||||
if test "$libdir" = '${exec_prefix}/lib'; then
|
|
||||||
libdir='${exec_prefix}/lib64';
|
|
||||||
# Locale data can be shared between 32bit and 64bit libraries
|
|
1026
strcoll-overflow.patch
Normal file
1026
strcoll-overflow.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,44 +0,0 @@
|
|||||||
From 3cc4f772e4e1a0999bf9a51a585c35d6f60421b6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Schwab <schwab@suse.de>
|
|
||||||
Date: Tue, 5 Feb 2013 14:40:39 +0100
|
|
||||||
Subject: [PATCH] Properly handle %W in strptime
|
|
||||||
|
|
||||||
[BZ #15100]
|
|
||||||
* time/strptime_l.c (__strptime_internal): Count Sunday in a %W
|
|
||||||
week as 6 instead of -1.
|
|
||||||
* tst-strptime.c (day_tests): Add test case.
|
|
||||||
---
|
|
||||||
time/strptime_l.c | 4 ++--
|
|
||||||
time/tst-strptime.c | 1 +
|
|
||||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/time/strptime_l.c b/time/strptime_l.c
|
|
||||||
index 1f2e8b6..00fc1ef 100644
|
|
||||||
--- a/time/strptime_l.c
|
|
||||||
+++ b/time/strptime_l.c
|
|
||||||
@@ -1180,8 +1180,8 @@ __strptime_internal (rp, fmt, tmp, statep LOCALE_PARAM)
|
|
||||||
|
|
||||||
if (!s.have_yday)
|
|
||||||
tm->tm_yday = ((7 - (tm->tm_wday - w_offset)) % 7
|
|
||||||
- + (s.week_no - 1) *7
|
|
||||||
- + save_wday - w_offset);
|
|
||||||
+ + (s.week_no - 1) * 7
|
|
||||||
+ + (save_wday - w_offset + 7) % 7);
|
|
||||||
|
|
||||||
if (!s.have_mday || !s.have_mon)
|
|
||||||
{
|
|
||||||
diff --git a/time/tst-strptime.c b/time/tst-strptime.c
|
|
||||||
index 12b084d..21fbb63 100644
|
|
||||||
--- a/time/tst-strptime.c
|
|
||||||
+++ b/time/tst-strptime.c
|
|
||||||
@@ -41,6 +41,7 @@ static const struct
|
|
||||||
{ "C", "19990502123412", "%Y%m%d%H%M%S", 0, 121, 4, 2 },
|
|
||||||
{ "C", "2001 20 Mon", "%Y %U %a", 1, 140, 4, 21 },
|
|
||||||
{ "C", "2001 21 Mon", "%Y %W %a", 1, 140, 4, 21 },
|
|
||||||
+ { "C", "2012 00 Sun", "%Y %W %a", 0, 0, 0, 1 },
|
|
||||||
{ "ja_JP.EUC-JP", "2000-01-01 08:12:21 AM", "%Y-%m-%d %I:%M:%S %p",
|
|
||||||
6, 0, 0, 1 },
|
|
||||||
{ "en_US.ISO-8859-1", "2000-01-01 08:12:21 PM", "%Y-%m-%d %I:%M:%S %p",
|
|
||||||
--
|
|
||||||
1.8.2.3
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user