From edb8c09addd186d9538d43b12af74d6c7aeea082 Mon Sep 17 00:00:00 2001 From: Ivan Kozlov Date: Tue, 21 Dec 2021 04:25:50 +0300 Subject: gnu: glibc: Handle failure to find $ORIGIN. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . * gnu/packages/patches/glibc-dl-cache.patch: Check pointer returned by '_dl_get_origin' for failure indication. Signed-off-by: Ludovic Courtès --- gnu/packages/patches/glibc-dl-cache.patch | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu') 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, '/'); -- cgit 1.4.1