[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#52693] [PATCH] gnu: glibc: Handle failure to find $ORIGIN.
From: |
Ivan Kozlov |
Subject: |
[bug#52693] [PATCH] gnu: glibc: Handle failure to find $ORIGIN. |
Date: |
Tue, 21 Dec 2021 04:25:50 +0300 |
Fixes <https://issues.guix.gnu.org/52671>.
* gnu/packages/patches/glibc-dl-cache.patch: Check pointer returned by
'_dl_get_origin' for failure indication.
---
gnu/packages/patches/glibc-dl-cache.patch | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/gnu/packages/patches/glibc-dl-cache.patch
b/gnu/packages/patches/glibc-dl-cache.patch
index 68c3a94846..1535e8e9c9 100644
--- a/gnu/packages/patches/glibc-dl-cache.patch
+++ b/gnu/packages/patches/glibc-dl-cache.patch
@@ -3,10 +3,10 @@ from /etc/ld.so.cache. Also arrange so that this cache takes
precedence over RUNPATH.
diff --git a/elf/dl-cache.c b/elf/dl-cache.c
-index 93d185e788..e0760a1f40 100644
+index 93d185e788..801452692d 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, '/');
@@ -58,7 +59,7 @@ index 93d185e788..e0760a1f40 100644
/* Look up NAME in ld.so.cache and return the file name stored there, or null
if none is found. The cache is loaded if it was not already. If loading
-@@ -190,12 +235,15 @@ _dl_load_cache_lookup (const char *name)
+@@ -190,12 +236,15 @@ _dl_load_cache_lookup (const char *name)
/* Print a message if the loading of libs is traced. */
if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS))
base-commit: 88b4dcdabe512992ae79a50fc333e4e463d91634
--
2.28.0
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug#52693] [PATCH] gnu: glibc: Handle failure to find $ORIGIN.,
Ivan Kozlov <=