From eddd6300473ba99d10e2ec537ab933edc6d44134 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 18 Sep 2018 00:22:04 +0000 Subject: pty.c: more difensive * ext/pty/pty.c (chfunc): should not close the slave fd if it is 0..2. [ruby-core:89043] [Bug #15116] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/pty/pty.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ext') diff --git a/ext/pty/pty.c b/ext/pty/pty.c index 1a70bf7b61..33e727e765 100644 --- a/ext/pty/pty.c +++ b/ext/pty/pty.c @@ -143,7 +143,7 @@ chfunc(void *data, char *errbuf, size_t errbuf_len) dup2(slave,0); dup2(slave,1); dup2(slave,2); - close(slave); + if (slave < 0 && slave > 2) (void)!close(slave); #if defined(HAVE_SETEUID) || defined(HAVE_SETREUID) || defined(HAVE_SETRESUID) if (seteuid(getuid())) ERROR_EXIT("seteuid()"); #endif @@ -233,7 +233,7 @@ ioctl_I_PUSH(int fd, const char *const name) ret = ioctl(fd, I_FIND, name); # endif if (ret == 0) { - ret = ioctl(fd, I_PUSH, name); + ret = ioctl(fd, I_PUSH, name); } return ret; } -- cgit v1.2.3