aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorIvan Kozlov <kanichos@yandex.ru>2021-12-21 04:25:50 +0300
committerLudovic Courtès <ludo@gnu.org>2023-01-29 23:11:26 +0100
commitedb8c09addd186d9538d43b12af74d6c7aeea082 (patch)
tree79da3c756136d696c00ef09a6f0b0d16b634256c /gnu
parentb86a3143886e19fba7a8263389db5c57f0463664 (diff)
downloadguix-edb8c09addd186d9538d43b12af74d6c7aeea082.tar.gz
guix-edb8c09addd186d9538d43b12af74d6c7aeea082.zip
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>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/patches/glibc-dl-cache.patch5
1 files changed, 3 insertions, 2 deletions
diff --git a/gnu/packages/patches/glibc-dl-cache.patch b/gnu/packages/patches/glibc-dl-cache.patch
index 68c3a94846..647837b983 100644
--- a/gnu/packages/patches/glibc-dl-cache.patch
+++ b/gnu/packages/patches/glibc-dl-cache.patch
@@ -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, '/');