changeset 5437:5bbb5bae3e66 draft

privsep: Use xsocketpair
author Roy Marples <roy@marples.name>
date Sat, 05 Sep 2020 16:12:30 +0100
parents 56c934c73aa8
children 5383a82a1338
files src/privsep-control.c src/privsep.c
diffstat 2 files changed, 3 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/src/privsep-control.c	Sat Sep 05 16:10:30 2020 +0100
+++ b/src/privsep-control.c	Sat Sep 05 16:12:30 2020 +0100
@@ -225,16 +225,10 @@
 	int data_fd[2], listen_fd[2];
 	pid_t pid;
 
-	if (socketpair(AF_UNIX, SOCK_STREAM | SOCK_CXNB, 0, data_fd) == -1)
-		return -1;
-	if (socketpair(AF_UNIX, SOCK_STREAM | SOCK_CXNB, 0, listen_fd) == -1)
+	if (xsocketpair(AF_UNIX, SOCK_STREAM | SOCK_CXNB, 0, data_fd) == -1)
 		return -1;
-#ifdef PRIVSEP_RIGHTS
-	if (ps_rights_limit_fdpair(data_fd) == -1)
+	if (xsocketpair(AF_UNIX, SOCK_STREAM | SOCK_CXNB, 0, listen_fd) == -1)
 		return -1;
-	if (ps_rights_limit_fdpair(listen_fd) == -1)
-		return -1;
-#endif
 
 	pid = ps_dostart(ctx, &ctx->ps_control_pid, &ctx->ps_control_fd,
 	    ps_ctl_recvmsg, ps_ctl_dodispatch, ctx,
--- a/src/privsep.c	Sat Sep 05 16:10:30 2020 +0100
+++ b/src/privsep.c	Sat Sep 05 16:12:30 2020 +0100
@@ -284,12 +284,10 @@
     void *recv_ctx, int (*callback)(void *), void (*signal_cb)(int, void *),
     unsigned int flags)
 {
-	int stype;
 	int fd[2];
 	pid_t pid;
 
-	stype = SOCK_CLOEXEC | SOCK_NONBLOCK;
-	if (socketpair(AF_UNIX, SOCK_DGRAM | stype, 0, fd) == -1) {
+	if (xsocketpair(AF_UNIX, SOCK_DGRAM | SOCK_CXNB, 0, fd) == -1) {
 		logerr("%s: socketpair", __func__);
 		return -1;
 	}
@@ -297,12 +295,6 @@
 		logerr("%s: ps_setbuf_fdpair", __func__);
 		return -1;
 	}
-#ifdef PRIVSEP_RIGHTS
-	if (ps_rights_limit_fdpair(fd) == -1) {
-		logerr("%s: ps_rights_limit_fdpair", __func__);
-		return -1;
-	}
-#endif
 
 	switch (pid = fork()) {
 	case -1: