me
/
guix
Archived
1
0
Fork 0

gnu: glibc: Handle failure to find $ORIGIN.

Fixes <https://issues.guix.gnu.org/52671>.

* gnu/packages/patches/glibc-dl-cache.patch: Check pointer returned by '_dl_get_origin' for failure indication.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
master
Ivan Kozlov 2021-12-21 04:25:50 +03:00 committed by Ludovic Courtès
parent b86a314388
commit edb8c09add
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 3 additions and 2 deletions

View File

@ -6,7 +6,7 @@ diff --git a/elf/dl-cache.c b/elf/dl-cache.c
index 93d185e788..e0760a1f40 100644
--- a/elf/dl-cache.c
+++ b/elf/dl-cache.c
@@ -171,6 +171,51 @@ _dl_cache_libcmp (const char *p1, const char *p2)
@@ -171,6 +171,52 @@ _dl_cache_libcmp (const char *p1, const char *p2)
return *p1 - *p2;
}
@ -27,7 +27,8 @@ index 93d185e788..e0760a1f40 100644
+ const char *origin = _dl_get_origin ();
+
+ /* Check whether ORIGIN is something like "/gnu/store/…-foo/bin". */
+ if (strncmp (store, origin, strlen (store)) == 0
+ if (origin != (char *) -1 /* _dl_get_origin reported failure */
+ && strncmp (store, origin, strlen (store)) == 0
+ && origin[sizeof store - 1] == '/')
+ {
+ char *store_item_end = strchr (origin + sizeof store, '/');