diff --git a/SUPPORTED b/SUPPORTED index 821f3ca..8476f26 100644 --- a/SUPPORTED +++ b/SUPPORTED @@ -321,6 +321,7 @@ mg_MG/ISO-8859-15 \ mhr_RU/UTF-8 \ mi_NZ.UTF-8/UTF-8 \ mi_NZ/ISO-8859-13 \ +miq_NI/UTF-8 \ mk_MK.UTF-8/UTF-8 \ mk_MK/ISO-8859-5 \ ml_IN/UTF-8 \ diff --git a/glibc-rh1315108.patch b/glibc-rh1315108.patch index 4627157..88bf4ae 100644 --- a/glibc-rh1315108.patch +++ b/glibc-rh1315108.patch @@ -156,16 +156,6 @@ Date: Sun Mar 1 19:48:31 2015 +0100 * posix/wordexp.c (parse_tilde): Use struct scratch_buffer instead of extend_alloca. -commit 7b4c16db30304b83a5d1e913d1a8f7e90a8c398c -Author: Florian Weimer -Date: Sun Mar 1 19:49:50 2015 +0100 - - glob: Rewrite to use struct scratch_buffer instead of extend_alloca - - [BZ #18023] - * posix/glob.c (glob): Use struct scratch_buffer instead of - extend_alloca. - commit 683543bbb3e2c1b17554c4096d00c2980f39a802 Author: Florian Weimer Date: Sun Mar 1 23:22:45 2015 +0100 @@ -1490,239 +1480,6 @@ Index: b/nss/nss_files/files-initgroups.c free (line); fclose (stream); -Index: b/posix/glob.c -=================================================================== ---- a/posix/glob.c -+++ b/posix/glob.c -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - /* Outcomment the following line for production quality code. */ - /* #define NDEBUG 1 */ -@@ -293,7 +294,7 @@ glob (const char *pattern, int flags, in - glob_t dirs; - int retval = 0; - #ifdef _LIBC -- size_t alloca_used = 0; -+ size_t alloca_used = sizeof (struct scratch_buffer); - #endif - - if (pattern == NULL || pglob == NULL || (flags & ~__GLOB_FLAGS) != 0) -@@ -637,33 +638,13 @@ glob (const char *pattern, int flags, in - { - struct passwd *p; - # if defined HAVE_GETPWNAM_R || defined _LIBC -- long int pwbuflen = GETPW_R_SIZE_MAX (); -- char *pwtmpbuf; - struct passwd pwbuf; -- int malloc_pwtmpbuf = 0; - int save = errno; -+ struct scratch_buffer pwtmpbuf; -+ scratch_buffer_init (&pwtmpbuf); - --# ifndef _LIBC -- if (pwbuflen == -1) -- /* `sysconf' does not support _SC_GETPW_R_SIZE_MAX. -- Try a moderate value. */ -- pwbuflen = 1024; --# endif -- if (__libc_use_alloca (alloca_used + pwbuflen)) -- pwtmpbuf = alloca_account (pwbuflen, alloca_used); -- else -- { -- pwtmpbuf = malloc (pwbuflen); -- if (pwtmpbuf == NULL) -- { -- retval = GLOB_NOSPACE; -- goto out; -- } -- malloc_pwtmpbuf = 1; -- } -- -- while (getpwnam_r (name, &pwbuf, pwtmpbuf, pwbuflen, &p) -- != 0) -+ while (getpwnam_r (name, &pwbuf, -+ pwtmpbuf.data, pwtmpbuf.length, &p) != 0) - { - if (errno != ERANGE) - { -@@ -671,67 +652,37 @@ glob (const char *pattern, int flags, in - break; - } - -- if (!malloc_pwtmpbuf -- && __libc_use_alloca (alloca_used -- + 2 * pwbuflen)) -- pwtmpbuf = extend_alloca_account (pwtmpbuf, pwbuflen, -- 2 * pwbuflen, -- alloca_used); -- else -+ if (!scratch_buffer_grow (&pwtmpbuf)) - { -- char *newp = realloc (malloc_pwtmpbuf -- ? pwtmpbuf : NULL, -- 2 * pwbuflen); -- if (newp == NULL) -- { -- if (__glibc_unlikely (malloc_pwtmpbuf)) -- free (pwtmpbuf); -- retval = GLOB_NOSPACE; -- goto out; -- } -- pwtmpbuf = newp; -- pwbuflen = 2 * pwbuflen; -- malloc_pwtmpbuf = 1; -+ retval = GLOB_NOSPACE; -+ goto out; - } - __set_errno (save); - } - # else -- p = getpwnam (name); -+ p = getpwnam (namebuf.data); - # endif - if (p != NULL) - { -- if (!malloc_pwtmpbuf) -- home_dir = p->pw_dir; -- else -+ home_dir = strdup (p->pw_dir); -+ malloc_home_dir = 1; -+ if (home_dir == NULL) - { -- size_t home_dir_len = strlen (p->pw_dir) + 1; -- if (__libc_use_alloca (alloca_used + home_dir_len)) -- home_dir = alloca_account (home_dir_len, -- alloca_used); -- else -- { -- home_dir = malloc (home_dir_len); -- if (home_dir == NULL) -- { -- free (pwtmpbuf); -- retval = GLOB_NOSPACE; -- goto out; -- } -- malloc_home_dir = 1; -- } -- memcpy (home_dir, p->pw_dir, home_dir_len); -- -- free (pwtmpbuf); -+ scratch_buffer_free (&pwtmpbuf); -+ retval = GLOB_NOSPACE; -+ goto out; - } - } -+ scratch_buffer_free (&pwtmpbuf); - } - } - if (home_dir == NULL || home_dir[0] == '\0') - { -+ if (malloc_home_dir) -+ free (home_dir); -+ malloc_home_dir = 0; - if (flags & GLOB_TILDE_CHECK) - { -- if (__glibc_unlikely (malloc_home_dir)) -- free (home_dir); - retval = GLOB_NOMATCH; - goto out; - } -@@ -852,57 +803,24 @@ glob (const char *pattern, int flags, in - { - struct passwd *p; - # if defined HAVE_GETPWNAM_R || defined _LIBC -- long int buflen = GETPW_R_SIZE_MAX (); -- char *pwtmpbuf; -- int malloc_pwtmpbuf = 0; - struct passwd pwbuf; - int save = errno; -+ struct scratch_buffer pwtmpbuf; -+ scratch_buffer_init (&pwtmpbuf); - --# ifndef _LIBC -- if (buflen == -1) -- /* `sysconf' does not support _SC_GETPW_R_SIZE_MAX. Try a -- moderate value. */ -- buflen = 1024; --# endif -- if (__libc_use_alloca (alloca_used + buflen)) -- pwtmpbuf = alloca_account (buflen, alloca_used); -- else -- { -- pwtmpbuf = malloc (buflen); -- if (pwtmpbuf == NULL) -- { -- nomem_getpw: -- if (__glibc_unlikely (malloc_user_name)) -- free (user_name); -- retval = GLOB_NOSPACE; -- goto out; -- } -- malloc_pwtmpbuf = 1; -- } -- -- while (getpwnam_r (user_name, &pwbuf, pwtmpbuf, buflen, &p) != 0) -+ while (getpwnam_r (user_name, &pwbuf, -+ pwtmpbuf.data, pwtmpbuf.length, &p) != 0) - { - if (errno != ERANGE) - { - p = NULL; - break; - } -- if (!malloc_pwtmpbuf -- && __libc_use_alloca (alloca_used + 2 * buflen)) -- pwtmpbuf = extend_alloca_account (pwtmpbuf, buflen, -- 2 * buflen, alloca_used); -- else -+ -+ if (!scratch_buffer_grow (&pwtmpbuf)) - { -- char *newp = realloc (malloc_pwtmpbuf ? pwtmpbuf : NULL, -- 2 * buflen); -- if (newp == NULL) -- { -- if (__glibc_unlikely (malloc_pwtmpbuf)) -- free (pwtmpbuf); -- goto nomem_getpw; -- } -- pwtmpbuf = newp; -- malloc_pwtmpbuf = 1; -+ retval = GLOB_NOSPACE; -+ goto out; - } - __set_errno (save); - } -@@ -931,8 +849,7 @@ glob (const char *pattern, int flags, in - dirname = malloc (home_len + rest_len + 1); - if (dirname == NULL) - { -- if (__glibc_unlikely (malloc_pwtmpbuf)) -- free (pwtmpbuf); -+ scratch_buffer_free (&pwtmpbuf); - retval = GLOB_NOSPACE; - goto out; - } -@@ -944,13 +861,11 @@ glob (const char *pattern, int flags, in - dirlen = home_len + rest_len; - dirname_modified = 1; - -- if (__glibc_unlikely (malloc_pwtmpbuf)) -- free (pwtmpbuf); -+ scratch_buffer_free (&pwtmpbuf); - } - else - { -- if (__glibc_unlikely (malloc_pwtmpbuf)) -- free (pwtmpbuf); -+ scratch_buffer_free (&pwtmpbuf); - - if (flags & GLOB_TILDE_CHECK) - /* We have to regard it as an error if we cannot find the Index: b/posix/wordexp.c =================================================================== --- a/posix/wordexp.c diff --git a/glibc.spec b/glibc.spec index 844a432..94c2a37 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,6 +1,6 @@ -%define glibcsrcdir glibc-2.26-290-gb38042f514 +%define glibcsrcdir glibc-2.26-427-g1e2bffd05c %define glibcversion 2.26.90 -%define glibcrelease 15%{?dist} +%define glibcrelease 16%{?dist} # Pre-release tarballs are pulled in from git using a command that is # effectively: # @@ -2060,6 +2060,41 @@ fi %endif %changelog +* Sat Sep 30 2017 Florian Weimer - 2.26.90-16 +- Auto-sync with upstream master, + commit 1e2bffd05c36a9be30d7092d6593a9e9aa009ada: +- Add IBM858 charset (#1416405) +- Update kernel version in syscall-names.list to 4.13 +- Add Linux 4.13 constants to bits/fcntl-linux.h +- Add fcntl sealing interfaces from Linux 3.17 to bits/fcntl-linux.h +- math: New generic powf, log2f, logf +- Fix nearbyint arithmetic moved before feholdexcept (swbz#22225) +- Mark __dso_handle as hidden (swbz#18822) +- Skip PT_DYNAMIC segment with p_filesz == 0 (swbz#22101) +- glob now matches dangling symbolic links (swbz#866, swbz#22183) +- nscd: Release read lock after resetting timeout (swbz#22161) +- Avoid __MATH_TG in C++ mode with -Os for pfcl (swbz#22146) +- Fix dlclose/exit race (swbz#22180) +- x86: Add SSE4.1 trunc, truncf (swbz#20142) +- Fix atexit/exit race (swbz#14333) +- Use execveat syscall in fexecve (swbz#22134) +- Enable unwind info in libc-start.c and backtrace.c +- powerpc: Avoid misaligned stores in memset +- powerpc: build some IFUNC math functions for libc and libm (swbz#21745) +- Removed redundant data (LC_TIME and LC_MESSAGES) for niu_NZ (swbz#22023) +- Fix LC_TELEPHONE for az_AZ (swbz#22112) +- x86: Add MathVec_Prefer_No_AVX512 to cpu-features (swbz#21967) +- x86: Add x86_64 to x86-64 HWCAP (swbz#22093) +- Finish change from “Bengali” to “Bangla” (swbz#14925) +- posix: fix glob bugs with long login names (swbz#1062) +- posix: Fix getpwnam_r usage (swbz#1062) +- posix: accept inode 0 is a valid inode number (swbz#19971) +- Remove redundant LC_TIME data in om_KE (swbz#22100) +- Remove remaining _HAVE_STRING_ARCH_* definitions (swbz#18858) +- resolv: Fix memory leak with OOM during resolv.conf parsing (swbz#22095) +- Add miq_NI locale for Miskito (swbz#20498) +- Fix bits/math-finite.h exp10 condition (swbz#22082) + * Mon Sep 04 2017 Florian Weimer - 2.26.90-15 - Auto-sync with upstream master, commit b38042f51430974642616a60afbbf96fd0b98659: diff --git a/sources b/sources index 3f42a24..049443a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glibc-2.26-290-gb38042f514.tar.gz) = 2b3f0ce5bd3f93481855b78401f46f6d2d005f8c0b477f4ed9f6cc4e3da887efd236c6f5f6d0a1163eee3099d110045ac8b8b1d1b9442f3d7f980d5d600f3f7d +SHA512 (glibc-2.26-427-g1e2bffd05c.tar.gz) = b0867410b4fc0eca80c090fa9ed3a7cfff69863e45acb7193d8221d2c81199fcf92f12b6c044962edb27cdf3cf1de88ef899f0f08b1f385ffa3e1a1708c061b3