summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dorau <d.dorau@avm.de>2022-03-04 11:14:18 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2022-03-10 13:01:38 +0100
commitf372cab88d1f03411af8fec6dfa880ee6144140d (patch)
treedec3d0d113b929dcc638123b507af1e3445d4416
parent118e211269fb4f685f2999157eb4aafc8fdd9423 (diff)
dl-elf: Supress adding double '/' in library pathname
When searching for shared libraries, it could happen that redudant '/' were added to the pathname with would later be reported via dladdr() in the dli_fname member. Signed-off-by: Daniel Dorau <d.dorau@avm.de>
-rw-r--r--ldso/ldso/dl-elf.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
index 2bcfcda64..8210a012e 100644
--- a/ldso/ldso/dl-elf.c
+++ b/ldso/ldso/dl-elf.c
@@ -182,7 +182,10 @@ search_for_named_library(const char *name, unsigned int rflags, const char *path
} else {
_dl_strcpy(mylibname, ".");
}
- _dl_strcat(mylibname, "/");
+ plen = _dl_strlen(mylibname);
+ if ((plen == 0) || (mylibname[plen-1] != '/')) {
+ _dl_strcat(mylibname, "/");
+ }
_dl_strcat(mylibname, name);
#ifdef __LDSO_SAFE_RUNPATH__
if (*mylibname == '/')