aboutsummaryrefslogtreecommitdiffstats
path: root/goruby.c
diff options
context:
space:
mode:
Diffstat (limited to 'goruby.c')
-rw-r--r--goruby.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/goruby.c b/goruby.c
index 8f7cf30be4..99042f8440 100644
--- a/goruby.c
+++ b/goruby.c
@@ -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;