Drop cpath promise unless file creation is allowed
authorkn <kn@openbsd.org>
Tue, 4 Oct 2022 07:05:28 +0000 (07:05 +0000)
committerkn <kn@openbsd.org>
Tue, 4 Oct 2022 07:05:28 +0000 (07:05 +0000)
OK millert

usr.sbin/tftpd/tftpd.c

index 9051c2e..132e3b8 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: tftpd.c,v 1.47 2021/10/24 21:24:19 deraadt Exp $      */
+/*     $OpenBSD: tftpd.c,v 1.48 2022/10/04 07:05:28 kn Exp $   */
 
 /*
  * Copyright (c) 2012 David Gwynne <dlg@uq.edu.au>
@@ -391,8 +391,13 @@ main(int argc, char *argv[])
        if (!debug && rdaemon(devnull) == -1)
                err(1, "unable to daemonize");
 
-       if (pledge("stdio rpath wpath cpath fattr dns inet", NULL) == -1)
-               lerr(1, "pledge");
+       if (cancreate) {
+               if (pledge("stdio rpath wpath cpath fattr dns inet", NULL) == -1)
+                       lerr(1, "pledge");
+       } else {
+               if (pledge("stdio rpath wpath fattr dns inet", NULL) == -1)
+                       lerr(1, "pledge");
+       }
 
        event_init();