aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2024-04-28 20:57:54 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2024-04-30 00:26:49 +0000
commitef2694f368cee5957ee44b0298da88ff8360d561 (patch)
tree338985dc9ebb97785ed89450b369cf1250f47579
parentd1cd0cc32b53c09e72e33116b94a5b0b9781a183 (diff)
downloadsrc-ef2694f368cee5957ee44b0298da88ff8360d561.tar.gz
src-ef2694f368cee5957ee44b0298da88ff8360d561.zip
rtld direct exec: make -u behavior match the description
Instead of only ignoring insecure env vars, clear them all. Reviewed by: emaste, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D44999
-rw-r--r--libexec/rtld-elf/rtld.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index f5a2eeb37f10..5743bbdd6f61 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -6189,7 +6189,10 @@ parse_args(char* argv[], int argc, bool *use_pathp, int *fdp,
} else if (opt == 'p') {
*use_pathp = true;
} else if (opt == 'u') {
- trust = false;
+ u_int ll;
+
+ for (ll = 0; ll < nitems(ld_env_vars); ll++)
+ ld_env_vars[ll].val = NULL;
} else if (opt == 'v') {
machine[0] = '\0';
mib[0] = CTL_HW;