Auto-sync with upstream branch master
Upstream commit: 4d0985543f479a6f421d4d8a9e0d1dc71c9c2c53 - elf: Record libc.so link map when it is the main program (bug 20972) - Use GMP 6.2.1 in build-many-glibcs.py. - aarch64: remove the strlen_asimd symbol - aarch64: fix static PIE start code for BTI [BZ #27068] - elf: Fix failure handling in _dl_map_object_from_fd - elf: inline lose for error handling - Remove strtoimax, strtoumax, wcstoimax, wcstoumax inlines - nsswitch: handle missing actions properly - x86: Remove the default REP MOVSB threshold tunable value [BZ #27061] - elf.h: Remove SHF_GNU_BUILD_NOTE. - elf.h: fix spelling typos in comments - Fix spelling and grammar in several comments - malloc: Detect infinite-loop in _int_free when freeing tcache [BZ#27052] - elf: Fix dl-load.c - elf: Include libc.so.6 as main program in dependency sort (bug 20972) - support: Add support_slibdir_prefix variable - aarch64: Use mmap to add PROT_BTI instead of mprotect [BZ #26831] - elf: Pass the fd to note processing - elf: Move note processing after l_phdr is updated - aarch64: align address for BTI protection [BZ #26988] - aarch64: Fix missing BTI protection from dependencies [BZ #26926] - Fix linknamespace errors in nss_database.c if build with -Os. - treewide: fix incorrect spelling of indices in comments - linux: Consolidate brk implementation - elf: Include <sys/param.h> in cache.c - s390x: Add glibc-hwcaps support - elf: Fix run-time dependencies of tst-dlopen-fail-2 - Handle out-of-memory case in svc_tcp.c/svc_unix.c:rendezvous_request. - elf: Fix incorrect comparison in sort_priorities_by_name - S390: Derive float_t from FLT_EVAL_METHOD - Fix parsing of /sys/devices/system/cpu/online (bug 25859) - Make strtoimax, strtoumax, wcstoimax, wcstoumax into aliases - Fixed typos in "NEWS for version 2.32" - Add NEWS entry for CVE-2020-29562 (BZ #26923) - iconv: Fix incorrect UCS4 inner loop bounds (BZ#26923) - Drop glibc-rh1906066 and glibc-rh741105 patches fixed by sync.
This commit is contained in:
parent
525dee4c87
commit
d5ff3061a2
@ -1,59 +0,0 @@
|
||||
From d74a39158ab4aafa8af874e996bf5ddbde593bc0 Mon Sep 17 00:00:00 2001
|
||||
From: DJ Delorie <dj@redhat.com>
|
||||
Date: Wed, 9 Dec 2020 21:46:30 -0500
|
||||
Subject: nsswitch: handle missing actions properly
|
||||
|
||||
Some internal functions need to know if a database has a nonzero
|
||||
list of actions; success getting the database does not guarantee
|
||||
that. Add checks for such as needed.
|
||||
|
||||
Skip the ":" in each nsswitch.conf line so as not to add a dummy
|
||||
action libnss_:.so
|
||||
|
||||
diff --git a/grp/initgroups.c b/grp/initgroups.c
|
||||
index a60ca1c395..a0a836d862 100644
|
||||
--- a/grp/initgroups.c
|
||||
+++ b/grp/initgroups.c
|
||||
@@ -72,11 +72,13 @@ internal_getgrouplist (const char *user, gid_t group, long int *size,
|
||||
|
||||
nss_action_list nip;
|
||||
|
||||
- if (__nss_database_get (nss_database_initgroups, &nip))
|
||||
+ if (__nss_database_get (nss_database_initgroups, &nip)
|
||||
+ && nip != NULL)
|
||||
{
|
||||
use_initgroups_entry = true;
|
||||
}
|
||||
- else if (__nss_database_get (nss_database_group, &nip))
|
||||
+ else if (__nss_database_get (nss_database_group, &nip)
|
||||
+ && nip != NULL)
|
||||
{
|
||||
use_initgroups_entry = false;
|
||||
}
|
||||
diff --git a/nss/nss_database.c b/nss/nss_database.c
|
||||
index e8c307d1f3..a036e95fbf 100644
|
||||
--- a/nss/nss_database.c
|
||||
+++ b/nss/nss_database.c
|
||||
@@ -212,7 +212,8 @@ process_line (struct nss_database_data *data, char *line)
|
||||
if (line[0] == '\0' || name == line)
|
||||
/* Syntax error. Skip this line. */
|
||||
return true;
|
||||
- *line++ = '\0';
|
||||
+ while (line[0] != '\0' && (isspace (line[0]) || line[0] == ':'))
|
||||
+ *line++ = '\0';
|
||||
|
||||
int db = name_to_database_index (name);
|
||||
if (db < 0)
|
||||
diff --git a/nss/nsswitch.c b/nss/nsswitch.c
|
||||
index 40109c744d..921062e04f 100644
|
||||
--- a/nss/nsswitch.c
|
||||
+++ b/nss/nsswitch.c
|
||||
@@ -81,7 +81,7 @@ __nss_database_lookup2 (const char *database, const char *alternate_name,
|
||||
if (database_names[database_id] == NULL)
|
||||
return -1;
|
||||
|
||||
- if (__nss_database_get (database_id, ni))
|
||||
+ if (__nss_database_get (database_id, ni) && *ni)
|
||||
{
|
||||
/* Success. */
|
||||
return 0;
|
@ -1,111 +0,0 @@
|
||||
Short description: Work ld.so --verify crash on debuginfo files.
|
||||
Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
|
||||
Origin: PATCH
|
||||
Bug-RHEL: #741105, #767146
|
||||
Upstream status: not-needed
|
||||
|
||||
This change is designed to work around running ld.so on a debuginfo
|
||||
file. This is the wrong fix for this problem and should be dropped.
|
||||
The correct solution is to mark debuginfo files as new types of
|
||||
ELF files.
|
||||
|
||||
|
||||
diff --git a/elf/dl-load.c b/elf/dl-load.c
|
||||
index 646c5dca40efcc9b..1f44ea3744f139f3 100644
|
||||
--- a/elf/dl-load.c
|
||||
+++ b/elf/dl-load.c
|
||||
@@ -952,6 +952,18 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
|
||||
in this information for the executable in case of an explicit
|
||||
loader invocation. */
|
||||
struct r_file_id id;
|
||||
+ struct stat64 st;
|
||||
+
|
||||
+ if (__glibc_unlikely (!_dl_get_file_id (fd, &id, &st)))
|
||||
+ {
|
||||
+ errstring = N_("cannot stat shared object");
|
||||
+ call_lose_errno:
|
||||
+ errval = errno;
|
||||
+ call_lose:
|
||||
+ lose (errval, fd, name, realname, l, errstring,
|
||||
+ make_consistent ? r : NULL, nsid);
|
||||
+ }
|
||||
+
|
||||
if (mode & __RTLD_OPENEXEC)
|
||||
{
|
||||
assert (nsid == LM_ID_BASE);
|
||||
@@ -959,16 +971,6 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
|
||||
}
|
||||
else
|
||||
{
|
||||
- if (__glibc_unlikely (!_dl_get_file_id (fd, &id)))
|
||||
- {
|
||||
- errstring = N_("cannot stat shared object");
|
||||
- call_lose_errno:
|
||||
- errval = errno;
|
||||
- call_lose:
|
||||
- lose (errval, fd, name, realname, l, errstring,
|
||||
- make_consistent ? r : NULL, nsid);
|
||||
- }
|
||||
-
|
||||
/* Look again to see if the real name matched another already loaded. */
|
||||
for (l = GL(dl_ns)[nsid]._ns_loaded; l != NULL; l = l->l_next)
|
||||
if (!l->l_removed && _dl_file_id_match_p (&l->l_file_id, &id))
|
||||
@@ -1147,6 +1149,16 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
|
||||
= N_("ELF load command address/offset not properly aligned");
|
||||
goto call_lose;
|
||||
}
|
||||
+ if (__glibc_unlikely (ph->p_offset + ph->p_filesz > st.st_size))
|
||||
+ {
|
||||
+ /* If the segment requires zeroing of part of its last
|
||||
+ page, we'll crash when accessing the unmapped page.
|
||||
+ There's still a possibility of a race, if the shared
|
||||
+ object is truncated between the fxstat above and the
|
||||
+ memset below. */
|
||||
+ errstring = N_("ELF load command past end of file");
|
||||
+ goto call_lose;
|
||||
+ }
|
||||
|
||||
struct loadcmd *c = &loadcmds[nloadcmds++];
|
||||
c->mapstart = ALIGN_DOWN (ph->p_vaddr, GLRO(dl_pagesize));
|
||||
diff --git a/sysdeps/generic/dl-fileid.h b/sysdeps/generic/dl-fileid.h
|
||||
index 459328d28c62c8e1..5070580b1b0cc629 100644
|
||||
--- a/sysdeps/generic/dl-fileid.h
|
||||
+++ b/sysdeps/generic/dl-fileid.h
|
||||
@@ -29,7 +29,8 @@ struct r_file_id
|
||||
On error, returns false, with errno set. */
|
||||
static inline bool
|
||||
_dl_get_file_id (int fd __attribute__ ((unused)),
|
||||
- struct r_file_id *id __attribute__ ((unused)))
|
||||
+ struct r_file_id *id __attribute__ ((unused)),
|
||||
+ struct stat64_t *st __attribute__((unused)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
diff --git a/sysdeps/posix/dl-fileid.h b/sysdeps/posix/dl-fileid.h
|
||||
index b3c8166701650b8b..cd862f511e6e3e94 100644
|
||||
--- a/sysdeps/posix/dl-fileid.h
|
||||
+++ b/sysdeps/posix/dl-fileid.h
|
||||
@@ -27,18 +27,16 @@ struct r_file_id
|
||||
ino64_t ino;
|
||||
};
|
||||
|
||||
-/* Sample FD to fill in *ID. Returns true on success.
|
||||
+/* Sample FD to fill in *ID and *ST. Returns true on success.
|
||||
On error, returns false, with errno set. */
|
||||
static inline bool
|
||||
-_dl_get_file_id (int fd, struct r_file_id *id)
|
||||
+_dl_get_file_id (int fd, struct r_file_id *id, struct stat64 *st)
|
||||
{
|
||||
- struct stat64 st;
|
||||
-
|
||||
- if (__glibc_unlikely (__fstat64 (fd, &st) < 0))
|
||||
+ if (__glibc_unlikely (__fstat64 (fd, st) < 0))
|
||||
return false;
|
||||
|
||||
- id->dev = st.st_dev;
|
||||
- id->ino = st.st_ino;
|
||||
+ id->dev = st->st_dev;
|
||||
+ id->ino = st->st_ino;
|
||||
return true;
|
||||
}
|
||||
|
48
glibc.spec
48
glibc.spec
@ -1,4 +1,4 @@
|
||||
%define glibcsrcdir glibc-2.32.9000-374-g088e962537
|
||||
%define glibcsrcdir glibc-2.32.9000-409-g4d0985543f
|
||||
%define glibcversion 2.32.9000
|
||||
# Pre-release tarballs are pulled in from git using a command that is
|
||||
# effectively:
|
||||
@ -96,7 +96,7 @@
|
||||
Summary: The GNU libc libraries
|
||||
Name: glibc
|
||||
Version: %{glibcversion}
|
||||
Release: 21%{?dist}
|
||||
Release: 22%{?dist}
|
||||
|
||||
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
|
||||
# libraries.
|
||||
@ -142,7 +142,6 @@ Source12: ChangeLog.old
|
||||
Patch1: glibc-fedora-nscd.patch
|
||||
Patch3: glibc-rh697421.patch
|
||||
Patch4: glibc-fedora-linux-tcsetattr.patch
|
||||
Patch5: glibc-rh741105.patch
|
||||
Patch6: glibc-fedora-localedef.patch
|
||||
Patch8: glibc-fedora-manual-dircategory.patch
|
||||
Patch9: glibc-rh827510.patch
|
||||
@ -158,9 +157,6 @@ Patch29: glibc-fedora-nsswitch.patch
|
||||
Patch30: glibc-deprecated-selinux-makedb.patch
|
||||
Patch31: glibc-deprecated-selinux-nscd.patch
|
||||
|
||||
# Temporary until official patch is committed upstream
|
||||
Patch99: glibc-rh1906066.patch
|
||||
|
||||
##############################################################################
|
||||
# Continued list of core "glibc" package information:
|
||||
##############################################################################
|
||||
@ -2257,6 +2253,46 @@ fi
|
||||
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
|
||||
|
||||
%changelog
|
||||
* Tue Dec 15 2020 Patsy Griffin <patsy@redhat.com> - 2.32.9000-22
|
||||
- Auto-sync with upstream branch master,
|
||||
commit 4d0985543f479a6f421d4d8a9e0d1dc71c9c2c53.
|
||||
- elf: Record libc.so link map when it is the main program (bug 20972)
|
||||
- Use GMP 6.2.1 in build-many-glibcs.py.
|
||||
- aarch64: remove the strlen_asimd symbol
|
||||
- aarch64: fix static PIE start code for BTI [BZ #27068]
|
||||
- elf: Fix failure handling in _dl_map_object_from_fd
|
||||
- elf: inline lose for error handling
|
||||
- Remove strtoimax, strtoumax, wcstoimax, wcstoumax inlines
|
||||
- nsswitch: handle missing actions properly
|
||||
- x86: Remove the default REP MOVSB threshold tunable value [BZ #27061]
|
||||
- elf.h: Remove SHF_GNU_BUILD_NOTE.
|
||||
- elf.h: fix spelling typos in comments
|
||||
- Fix spelling and grammar in several comments
|
||||
- malloc: Detect infinite-loop in _int_free when freeing tcache [BZ#27052]
|
||||
- elf: Fix dl-load.c
|
||||
- elf: Include libc.so.6 as main program in dependency sort (bug 20972)
|
||||
- support: Add support_slibdir_prefix variable
|
||||
- aarch64: Use mmap to add PROT_BTI instead of mprotect [BZ #26831]
|
||||
- elf: Pass the fd to note processing
|
||||
- elf: Move note processing after l_phdr is updated
|
||||
- aarch64: align address for BTI protection [BZ #26988]
|
||||
- aarch64: Fix missing BTI protection from dependencies [BZ #26926]
|
||||
- Fix linknamespace errors in nss_database.c if build with -Os.
|
||||
- treewide: fix incorrect spelling of indices in comments
|
||||
- linux: Consolidate brk implementation
|
||||
- elf: Include <sys/param.h> in cache.c
|
||||
- s390x: Add glibc-hwcaps support
|
||||
- elf: Fix run-time dependencies of tst-dlopen-fail-2
|
||||
- Handle out-of-memory case in svc_tcp.c/svc_unix.c:rendezvous_request.
|
||||
- elf: Fix incorrect comparison in sort_priorities_by_name
|
||||
- S390: Derive float_t from FLT_EVAL_METHOD
|
||||
- Fix parsing of /sys/devices/system/cpu/online (bug 25859)
|
||||
- Make strtoimax, strtoumax, wcstoimax, wcstoumax into aliases
|
||||
- Fixed typos in "NEWS for version 2.32"
|
||||
- Add NEWS entry for CVE-2020-29562 (BZ #26923)
|
||||
- iconv: Fix incorrect UCS4 inner loop bounds (BZ#26923)
|
||||
- Drop glibc-rh1906066 and glibc-rh741105 patches fixed by sync.
|
||||
|
||||
* Mon Dec 14 2020 Florian Weimer <fweimer@redhat.com> - 2.32.9000-21
|
||||
- Re-enable -Werror everywhere (#1888246)
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (glibc-2.32.9000-374-g088e962537.tar.xz) = e621b9a2e28491a1823f13541dc2d17ad812e6c8a12ae1b128dce0697280b8eb0571a06570b9e05ea1004d20d639f0193dfe425974bffccb9ff83bc14fd7c629
|
||||
SHA512 (glibc-2.32.9000-409-g4d0985543f.tar.xz) = 5665bba5c9105a9799ba815ddcbce9bbd6c9b7789f4069821b4db0537456ac6754ff5d728e70ec8f94a51514fbfb77889f27ecfe72f5b0854230d5a03f883950
|
||||
|
Loading…
Reference in New Issue
Block a user