From 2e39d698d2e6597f0c2c92bbbfd7213dca029b20 Mon Sep 17 00:00:00 2001 From: claudio Date: Tue, 16 Jan 2024 13:09:11 +0000 Subject: [PATCH] Use imsg_get_fd() instead of direct access to imsg.fd The change in proc.c can be further simplified once imsg_free() takes care of unclaimed file descriptors. OK nicm@ --- proc.c | 5 +++-- server-client.c | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/proc.c b/proc.c index 330d73f3..0a146b0e 100644 --- a/proc.c +++ b/proc.c @@ -92,8 +92,9 @@ proc_event_cb(__unused int fd, short events, void *arg) log_debug("peer %p message %d", peer, imsg.hdr.type); if (peer_check_version(peer, &imsg) != 0) { - if (imsg.fd != -1) - close(imsg.fd); + int fd = imsg_get_fd(&imsg); + if (fd != -1) + close(fd); imsg_free(&imsg); break; } diff --git a/server-client.c b/server-client.c index fa8bddfa..5680594a 100644 --- a/server-client.c +++ b/server-client.c @@ -3002,14 +3002,14 @@ server_client_dispatch_identify(struct client *c, struct imsg *imsg) case MSG_IDENTIFY_STDIN: if (datalen != 0) fatalx("bad MSG_IDENTIFY_STDIN size"); - c->fd = imsg->fd; - log_debug("client %p IDENTIFY_STDIN %d", c, imsg->fd); + c->fd = imsg_get_fd(imsg); + log_debug("client %p IDENTIFY_STDIN %d", c, c->fd); break; case MSG_IDENTIFY_STDOUT: if (datalen != 0) fatalx("bad MSG_IDENTIFY_STDOUT size"); - c->out_fd = imsg->fd; - log_debug("client %p IDENTIFY_STDOUT %d", c, imsg->fd); + c->out_fd = imsg_get_fd(imsg); + log_debug("client %p IDENTIFY_STDOUT %d", c, c->out_fd); break; case MSG_IDENTIFY_ENVIRON: if (datalen == 0 || data[datalen - 1] != '\0')