diff options
Diffstat (limited to 'goruby.c')
-rw-r--r-- | goruby.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -32,12 +32,14 @@ goruby_options(int argc, char **argv) void *ret; if ((isatty(0) && isatty(1) && isatty(2)) && (pipe(rw) == 0)) { + ssize_t n; infd = dup(0); + if (infd < 0) return NULL; dup2(rw[0], 0); close(rw[0]); - write(rw[1], cmd, sizeof(cmd) - 1); + n = write(rw[1], cmd, sizeof(cmd) - 1); close(rw[1]); - ret = ruby_options(argc, argv); + ret = n > 0 ? ruby_options(argc, argv) : NULL; dup2(infd, 0); close(infd); return ret; |