Remove cpath pledge(2) promise. We decided that not deleting the unix control
authormestre <mestre@openbsd.org>
Mon, 6 Aug 2018 06:30:06 +0000 (06:30 +0000)
committermestre <mestre@openbsd.org>
Mon, 6 Aug 2018 06:30:06 +0000 (06:30 +0000)
sockets cause no harm and this way we close another attack surface by not
allowing the daemon to create/delete any more files.

OK kn@

sbin/iked/control.c
sbin/iked/iked.h
sbin/iked/proc.c

index 6580584..67466c6 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: control.c,v 1.25 2017/01/17 22:10:55 krw Exp $        */
+/*     $OpenBSD: control.c,v 1.26 2018/08/06 06:30:06 mestre Exp $     */
 
 /*
  * Copyright (c) 2010-2013 Reyk Floeter <reyk@openbsd.org>
@@ -65,10 +65,9 @@ control_run(struct privsep *ps, struct privsep_proc *p, void *arg)
        /*
         * pledge in the control process:
         * stdio - for malloc and basic I/O including events.
-        * cpath - for unlinking the control socket.
         * unix - for the control socket.
         */
-       if (pledge("stdio cpath unix", NULL) == -1)
+       if (pledge("stdio unix", NULL) == -1)
                fatal("pledge");
 }
 
@@ -151,16 +150,6 @@ control_listen(struct control_sock *cs)
        return (0);
 }
 
-void
-control_cleanup(struct control_sock *cs)
-{
-       if (cs->cs_name == NULL)
-               return;
-       event_del(&cs->cs_ev);
-       event_del(&cs->cs_evt);
-       (void)unlink(cs->cs_name);
-}
-
 /* ARGSUSED */
 void
 control_accept(int listenfd, short event, void *arg)
index 49b7333..9e2972c 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: iked.h,v 1.118 2018/03/16 12:31:09 mpi Exp $  */
+/*     $OpenBSD: iked.h,v 1.119 2018/08/06 06:30:06 mestre Exp $       */
 
 /*
  * Copyright (c) 2010-2013 Reyk Floeter <reyk@openbsd.org>
@@ -648,7 +648,6 @@ void         parent_reload(struct iked *, int, const char *);
 pid_t   control(struct privsep *, struct privsep_proc *);
 int     control_init(struct privsep *, struct control_sock *);
 int     control_listen(struct control_sock *);
-void    control_cleanup(struct control_sock *);
 
 /* config.c */
 struct iked_policy *
index d23c0bc..1602f0f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: proc.c,v 1.30 2017/01/09 14:49:21 reyk Exp $  */
+/*     $OpenBSD: proc.c,v 1.31 2018/08/06 06:30:06 mestre Exp $        */
 
 /*
  * Copyright (c) 2010 - 2014 Reyk Floeter <reyk@openbsd.org>
@@ -291,9 +291,6 @@ proc_shutdown(struct privsep_proc *p)
 {
        struct privsep  *ps = p->p_ps;
 
-       if (p->p_id == PROC_CONTROL && ps)
-               control_cleanup(&ps->ps_csock);
-
        if (p->p_shutdown != NULL)
                (*p->p_shutdown)();