diff --git a/src/dmaster.c b/src/dmaster.c index 45331c8..2e99c57 100644 --- a/src/dmaster.c +++ b/src/dmaster.c @@ -102,9 +102,9 @@ static void setup_daemon(void) { setup_pidfile(); - close(STDIN_FILENO); - close(STDOUT_FILENO); - close(STDERR_FILENO); + freopen("/dev/null", "r", stdin); + freopen("/dev/null", "w", stdout); + freopen("/dev/null", "w", stderr); } } diff --git a/src/dslave.c b/src/dslave.c index dd373cf..4ae7624 100644 --- a/src/dslave.c +++ b/src/dslave.c @@ -100,6 +100,9 @@ static void handle_op_message(uint32_t in_type, struct strbuf *in, struct strbuf if (spawnvem(op->path, argv, envp, in, out, 0)) fatal("child %s failed", op->path); + if (!out->len) + fatal("no response from op"); + free_env(envp); }