From: beck Date: Thu, 2 Aug 2018 04:39:58 +0000 (+0000) Subject: Test messing with "." both when having . unveiled for an operation, and X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=bd7bdf350b2c368e5f6b0c828651e45fa0ee7292;p=openbsd Test messing with "." both when having . unveiled for an operation, and with . veiled without the right flags for an operation, since these come out of namei differently and . is the bane of the special LOCKPARENT corner cases - this tests a panic found by anton@ --- diff --git a/regress/sys/kern/unveil/syscalls.c b/regress/sys/kern/unveil/syscalls.c index 91c11584cb1..6d8242ac070 100644 --- a/regress/sys/kern/unveil/syscalls.c +++ b/regress/sys/kern/unveil/syscalls.c @@ -1,4 +1,4 @@ -/* $OpenBSD: syscalls.c,v 1.14 2018/07/29 22:30:32 beck Exp $ */ +/* $OpenBSD: syscalls.c,v 1.15 2018/08/02 04:39:58 beck Exp $ */ /* * Copyright (c) 2017-2018 Bob Beck @@ -755,9 +755,16 @@ test_dot(int do_uv) { extern char **environ; if (do_uv) { - printf("testing unveil(\".\")\n"); + printf("testing dot(\".\")\n"); if (unveil(".", "rwxc") == -1) err(1, "%s:%d - unveil", __FILE__, __LINE__); + if ((unlink(".") == -1) && errno != EPERM) + err(1, "%s:%d - unlink", __FILE__, __LINE__); + printf("testing dot flags(\".\")\n"); + if (unveil(".", "r") == -1) + err(1, "%s:%d - unveil", __FILE__, __LINE__); + if ((unlink(".") == -1) && errno != EACCES) + warn("%s:%d - unlink", __FILE__, __LINE__); } return 0; }