update to glibc-2.28-151.el8.src.rpm
Signed-off-by: Liwei Ge <geliwei@openanolis.org>
This commit is contained in:
parent
ba6a26df65
commit
37da1d0798
284 changed files with 62546 additions and 13 deletions
62
glibc-rh1817513-63.patch
Normal file
62
glibc-rh1817513-63.patch
Normal file
|
@ -0,0 +1,62 @@
|
|||
commit e221c512c74ec42fd47b71de2981a475b38110a4
|
||||
Author: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Mon Jun 15 09:50:14 2020 +0200
|
||||
|
||||
ld.so: Check for new cache format first and enhance corruption check
|
||||
|
||||
Now that ldconfig defaults to the new format (only), check for it
|
||||
first. Also apply the corruption check added in commit 2954daf00bb4d
|
||||
("Add more checks for valid ld.so.cache file (bug 18093)") to the
|
||||
new-format-only case.
|
||||
|
||||
Suggested-by: Josh Triplett <josh@joshtriplett.org>
|
||||
|
||||
diff --git a/elf/dl-cache.c b/elf/dl-cache.c
|
||||
index 6dd99a35b9f97cfb..ef37ca18fa9fb6e0 100644
|
||||
--- a/elf/dl-cache.c
|
||||
+++ b/elf/dl-cache.c
|
||||
@@ -199,15 +199,25 @@ _dl_load_cache_lookup (const char *name)
|
||||
PROT_READ);
|
||||
|
||||
/* We can handle three different cache file formats here:
|
||||
+ - only the new format
|
||||
- the old libc5/glibc2.0/2.1 format
|
||||
- the old format with the new format in it
|
||||
- - only the new format
|
||||
The following checks if the cache contains any of these formats. */
|
||||
- if (file != MAP_FAILED && cachesize > sizeof *cache
|
||||
- && memcmp (file, CACHEMAGIC, sizeof CACHEMAGIC - 1) == 0
|
||||
+ if (file != MAP_FAILED && cachesize > sizeof *cache_new
|
||||
+ && memcmp (file, CACHEMAGIC_VERSION_NEW,
|
||||
+ sizeof CACHEMAGIC_VERSION_NEW - 1) == 0
|
||||
/* Check for corruption, avoiding overflow. */
|
||||
- && ((cachesize - sizeof *cache) / sizeof (struct file_entry)
|
||||
- >= ((struct cache_file *) file)->nlibs))
|
||||
+ && ((cachesize - sizeof *cache_new) / sizeof (struct file_entry_new)
|
||||
+ >= ((struct cache_file_new *) file)->nlibs))
|
||||
+ {
|
||||
+ cache_new = file;
|
||||
+ cache = file;
|
||||
+ }
|
||||
+ else if (file != MAP_FAILED && cachesize > sizeof *cache
|
||||
+ && memcmp (file, CACHEMAGIC, sizeof CACHEMAGIC - 1) == 0
|
||||
+ /* Check for corruption, avoiding overflow. */
|
||||
+ && ((cachesize - sizeof *cache) / sizeof (struct file_entry)
|
||||
+ >= ((struct cache_file *) file)->nlibs))
|
||||
{
|
||||
size_t offset;
|
||||
/* Looks ok. */
|
||||
@@ -223,13 +233,6 @@ _dl_load_cache_lookup (const char *name)
|
||||
sizeof CACHEMAGIC_VERSION_NEW - 1) != 0)
|
||||
cache_new = (void *) -1;
|
||||
}
|
||||
- else if (file != MAP_FAILED && cachesize > sizeof *cache_new
|
||||
- && memcmp (file, CACHEMAGIC_VERSION_NEW,
|
||||
- sizeof CACHEMAGIC_VERSION_NEW - 1) == 0)
|
||||
- {
|
||||
- cache_new = file;
|
||||
- cache = file;
|
||||
- }
|
||||
else
|
||||
{
|
||||
if (file != MAP_FAILED)
|
Loading…
Add table
Add a link
Reference in a new issue