From: Roy Marples Date: Sat, 5 Sep 2020 15:12:30 +0000 (+0100) Subject: privsep: Use xsocketpair X-Git-Tag: v9.2.0~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=08d8151c559851a6e805e6e6341875f40e892a48;p=thirdparty%2Fdhcpcd.git privsep: Use xsocketpair --- diff --git a/src/privsep-control.c b/src/privsep-control.c index e0f9088f..8d1ed506 100644 --- a/src/privsep-control.c +++ b/src/privsep-control.c @@ -225,16 +225,10 @@ ps_ctl_start(struct dhcpcd_ctx *ctx) int data_fd[2], listen_fd[2]; pid_t pid; - if (socketpair(AF_UNIX, SOCK_STREAM | SOCK_CXNB, 0, data_fd) == -1) + if (xsocketpair(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, listen_fd) == -1) return -1; -#ifdef PRIVSEP_RIGHTS - if (ps_rights_limit_fdpair(data_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, diff --git a/src/privsep.c b/src/privsep.c index aa5cd9ab..14760e6e 100644 --- a/src/privsep.c +++ b/src/privsep.c @@ -284,12 +284,10 @@ ps_dostart(struct dhcpcd_ctx *ctx, 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 @@ ps_dostart(struct dhcpcd_ctx *ctx, 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: