Mercurial > hg > dhcpcd
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:
