Auto-sync with upstream master
Upstream 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)
This commit is contained in:
parent
253d1d9c66
commit
d61c107a04
@ -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 \
|
||||
|
@ -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 <fweimer@redhat.com>
|
||||
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 <fweimer@redhat.com>
|
||||
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 <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
+#include <scratch_buffer.h>
|
||||
|
||||
/* 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
|
||||
|
39
glibc.spec
39
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 <fweimer@redhat.com> - 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 <fweimer@redhat.com> - 2.26.90-15
|
||||
- Auto-sync with upstream master,
|
||||
commit b38042f51430974642616a60afbbf96fd0b98659:
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (glibc-2.26-290-gb38042f514.tar.gz) = 2b3f0ce5bd3f93481855b78401f46f6d2d005f8c0b477f4ed9f6cc4e3da887efd236c6f5f6d0a1163eee3099d110045ac8b8b1d1b9442f3d7f980d5d600f3f7d
|
||||
SHA512 (glibc-2.26-427-g1e2bffd05c.tar.gz) = b0867410b4fc0eca80c090fa9ed3a7cfff69863e45acb7193d8221d2c81199fcf92f12b6c044962edb27cdf3cf1de88ef899f0f08b1f385ffa3e1a1708c061b3
|
||||
|
Loading…
Reference in New Issue
Block a user