summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_tame.c
diff options
context:
space:
mode:
authorsemarie <semarie@openbsd.org>2015-09-28 15:40:18 +0000
committersemarie <semarie@openbsd.org>2015-09-28 15:40:18 +0000
commitcf53adfc7e4e56a711a0c7faa2dfcdfa6522b46b (patch)
treef87a8390d72d6269ccc6ed4a3864130e0f9ea540 /sys/kern/kern_tame.c
parentKeep sparc/disksubr.c and sparc64/disksubr.c as close as possible. (diff)
downloadwireguard-openbsd-cf53adfc7e4e56a711a0c7faa2dfcdfa6522b46b.tar.xz
wireguard-openbsd-cf53adfc7e4e56a711a0c7faa2dfcdfa6522b46b.zip
make using tame path "/" work.
and add a regress test for that. ok deraadt@
Diffstat (limited to 'sys/kern/kern_tame.c')
-rw-r--r--sys/kern/kern_tame.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/kern_tame.c b/sys/kern/kern_tame.c
index bdce41a5d9e..3ed3ff74661 100644
--- a/sys/kern/kern_tame.c
+++ b/sys/kern/kern_tame.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_tame.c,v 1.42 2015/09/19 20:39:06 semarie Exp $ */
+/* $OpenBSD: kern_tame.c,v 1.43 2015/09/28 15:40:18 semarie Exp $ */
/*
* Copyright (c) 2015 Nicholas Marriott <nicm@openbsd.org>
@@ -626,7 +626,8 @@ tame_namei(struct proc *p, char *origpath)
wl->wl_paths[i].len - 1) == 0) {
u_char term = canopath[wl->wl_paths[i].len - 1];
- if (term == '\0' || term == '/')
+ if (term == '\0' || term == '/' ||
+ wl->wl_paths[i].name[1] == '\0')
error = 0;
}
}