diff options
| author | dsl <dsl@NetBSD.org> | 2003-05-28 20:45:39 +0000 |
|---|---|---|
| committer | dsl <dsl@NetBSD.org> | 2003-05-28 20:45:39 +0000 |
| commit | b5a44ece1f080398839610aa24ef8d8bd1e0dddd (patch) | |
| tree | 6f195a06ef2ab9d107523b3d62a5ee3bee1c2b18 /usr.bin | |
| parent | 9a398ec067e79750c8a4eb3dd4214baa7993d67d (diff) | |
Look at mode of program being run, not of ldd when deciding whether to
use LD_LIBRARY_PATH.
Diffstat (limited to 'usr.bin')
| -rw-r--r-- | usr.bin/ldd/ldd_elf/ldd.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/usr.bin/ldd/ldd_elf/ldd.c b/usr.bin/ldd/ldd_elf/ldd.c index a479413fd24..d906093a043 100644 --- a/usr.bin/ldd/ldd_elf/ldd.c +++ b/usr.bin/ldd/ldd_elf/ldd.c @@ -1,4 +1,4 @@ -/* $NetBSD: ldd.c,v 1.18 2003/04/23 21:39:08 mycroft Exp $ */ +/* $NetBSD: ldd.c,v 1.19 2003/05/28 20:45:39 dsl Exp $ */ /*- * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc. @@ -115,13 +115,6 @@ main(int argc, char **argv) _rtld_pagesz = sysconf(_SC_PAGESIZE); - _rtld_trust = geteuid() == getuid() && getegid() == getgid(); - if (_rtld_trust) { - _rtld_add_paths(&_rtld_paths, getenv("LD_LIBRARY_PATH")); - } - - _rtld_process_hints(&_rtld_paths, &_rtld_xforms, _PATH_LD_HINTS); - for (argc--, argv++; argc != 0; argc--, argv++) { int fd = open(*argv, O_RDONLY); if (fd == -1) { @@ -133,6 +126,13 @@ main(int argc, char **argv) close(fd); continue; } + + _rtld_paths = NULL; + _rtld_trust = (st.st_mode & (S_ISUID | S_ISGID)) == 0; + if (_rtld_trust) + _rtld_add_paths(&_rtld_paths, getenv("LD_LIBRARY_PATH")); + + _rtld_process_hints(&_rtld_paths, &_rtld_xforms, _PATH_LD_HINTS); _rtld_objmain = _rtld_map_object(xstrdup(*argv), fd, &st); if (_rtld_objmain == NULL) { if (ldd_aout(*argv, fd) < 0) |
