aboutsummaryrefslogtreecommitdiff
path: root/chardev/char-pipe.c
diff options
context:
space:
mode:
Diffstat (limited to 'chardev/char-pipe.c')
-rw-r--r--chardev/char-pipe.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
index 3d1b0ce..e9f3bb8 100644
--- a/chardev/char-pipe.c
+++ b/chardev/char-pipe.c
@@ -150,7 +150,14 @@ static void qemu_chr_open_pipe(Chardev *chr,
return;
}
}
- qemu_chr_open_fd(chr, fd_in, fd_out);
+
+ if (!qemu_chr_open_fd(chr, fd_in, fd_out, errp)) {
+ close(fd_in);
+ if (fd_out != fd_in) {
+ close(fd_out);
+ }
+ return;
+ }
}
#endif /* !_WIN32 */