OK florian@
On Sat, Aug 04, 2018 at 12:18:45PM +0100, Ricardo Mestre wrote:
> Hi,
>
> Here's another one for switchd(8) which removes cpath promise from pledge(2)
>
> OK?
>
> Index: control.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/switchd/control.c,v
> retrieving revision 1.8
> diff -u -p -u -r1.8 control.c
> --- control.c 17 Jan 2017 22:10:56 -0000 1.8
> +++ control.c 3 Aug 2018 06:53:38 -0000
> @@ -70,11 +70,10 @@ control_run(struct privsep *ps, struct p
> /*
> * pledge in the control process:
> * stdio - for malloc and basic I/O including events.
> - * cpath - for managing the control socket.
> * unix - for the control socket.
> * recvfd - for the proc fd exchange.
> */
> - if (pledge("stdio cpath unix recvfd", NULL) == -1)
> + if (pledge("stdio unix recvfd", NULL) == -1)
> fatal("pledge");
> }
>
> @@ -194,16 +193,6 @@ control_listen(struct control_sock *cs)
> evtimer_set(&cs->cs_evt, control_accept, 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 */
> Index: proc.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/switchd/proc.c,v
> retrieving revision 1.12
> diff -u -p -u -r1.12 proc.c
> --- proc.c 29 May 2017 12:56:26 -0000 1.12
> +++ proc.c 3 Aug 2018 06:53:38 -0000
> @@ -475,9 +475,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)();
>
> Index: proc.h
> ===================================================================
> RCS file: /cvs/src/usr.sbin/switchd/proc.h,v
> retrieving revision 1.6
> diff -u -p -u -r1.6 proc.h
> --- proc.h 9 Jan 2017 14:49:22 -0000 1.6
> +++ proc.h 3 Aug 2018 06:53:38 -0000
> @@ -160,7 +160,6 @@ int proc_flush_imsg(struct privsep *, e
> /* control.c */
> int control_init(struct privsep *, struct control_sock *);
> int control_listen(struct control_sock *);
> -void control_cleanup(struct control_sock *);
> struct ctl_conn
> *control_connbyfd(int);
> void control(struct privsep *, struct privsep_proc *);
>
--
I'm not entirely sure you are real.