From 23364963470bc03b71d375ed8af3bc068914ff9e Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Mon, 26 Mar 2018 06:28:23 -0600 Subject: [PATCH] In pty_close() there is no need to remove events associated with the pty slave as there are none. We also don't need to check for the pty fds being -1 since they are not closed elsewhere and pty_close() is only called if pty_setup() succeeds. --- src/exec_pty.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/exec_pty.c b/src/exec_pty.c index 01466db86..396c3629c 100644 --- a/src/exec_pty.c +++ b/src/exec_pty.c @@ -748,18 +748,14 @@ io_buf_new(int rfd, int wfd, } static void -pty_close(struct sudo_event_base *evbase, struct command_status *cstat) +pty_close(struct command_status *cstat) { struct io_buffer *iob; int n; debug_decl(pty_close, SUDO_DEBUG_EXEC); /* Close the pty slave first so reads from the master don't block. */ - if (io_fds[SFD_SLAVE] != -1) { - ev_free_by_fd(evbase, io_fds[SFD_SLAVE]); - close(io_fds[SFD_SLAVE]); - io_fds[SFD_SLAVE] = -1; - } + close(io_fds[SFD_SLAVE]); /* Flush any remaining output (the plugin already got it). */ if (io_fds[SFD_USERTTY] != -1) { @@ -790,8 +786,7 @@ pty_close(struct sudo_event_base *evbase, struct command_status *cstat) utmp_logout(slavename, cstat->type == CMD_WSTATUS ? cstat->val : 0); /* Close pty master. */ - if (io_fds[SFD_MASTER] != -1) - close(io_fds[SFD_MASTER]); + close(io_fds[SFD_MASTER]); debug_return; } @@ -1493,7 +1488,7 @@ exec_pty(struct command_details *details, struct command_status *cstat) } /* Flush any remaining output, free I/O bufs and events, do logout. */ - pty_close(ec.evbase, cstat); + pty_close(cstat); /* Free things up. */ free_exec_closure_pty(&ec); -- 2.40.0