From 34d842901dc2c03d757df84797abf62be880a914 Mon Sep 17 00:00:00 2001 From: Lai Jiangshan Date: Wed, 9 Mar 2016 15:36:53 +0800 Subject: [PATCH] always setup exec->errfd Signed-off-by: Lai Jiangshan --- src/exec.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/exec.c b/src/exec.c index 86fe48a..8e0b297 100644 --- a/src/exec.c +++ b/src/exec.c @@ -245,6 +245,8 @@ int hyper_setup_exec_tty(struct hyper_exec *e) fprintf(stdout, "get pty device for exec %s\n", ptmx); done: + if (e->errseq == 0) + e->errfd = e->ptyfd; fprintf(stdout, "%s pts event %p, fd %d %d\n", __func__, &e->e, e->e.fd, e->ptyfd); return 0; @@ -571,7 +573,8 @@ out: return ret; close_tty: close(exec->ptyfd); - close(exec->errfd); + if (exec->errfd != exec->ptyfd) + close(exec->errfd); close(exec->e.fd); free_exec: hyper_free_exec(exec); @@ -697,7 +700,8 @@ int hyper_handle_exec_exit(struct hyper_pod *pod, int pid, uint8_t code) close(exec->ptyfd); exec->ptyfd = -1; - close(exec->errfd); + if (exec->errfd != exec->ptyfd) + close(exec->errfd); exec->errfd = -1; hyper_release_exec(exec, pod);