diff options
Diffstat (limited to 'ldso')
-rw-r--r-- | ldso/ldso/dl-elf.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c index 01b29da29..5b8572a8f 100644 --- a/ldso/ldso/dl-elf.c +++ b/ldso/ldso/dl-elf.c @@ -162,7 +162,9 @@ search_for_named_library(const char *name, unsigned rflags, const char *path_lis if (plen >= 7 && _dl_memcmp(p, "$ORIGIN", 7) == 0) { int olen; - if (rflags && plen != 7) + /* $ORIGIN is not expanded for SUID/GUID programs + (except if it is $ORIGIN alone) */ + if ((rflags & DL_RESOLVE_SECURE) && plen != 7) continue; if (origin == NULL) continue; |