From 173776f74d072f375b3815a4beaa6ddc7bf26cab Mon Sep 17 00:00:00 2001 From: "Denis V. Lunev" Date: Mon, 17 Jul 2023 16:55:44 +0200 Subject: qemu-nbd: handle dup2() error when qemu-nbd finished setup process Fail on error, we are in trouble. Signed-off-by: Denis V. Lunev CC: Eric Blake CC: Vladimir Sementsov-Ogievskiy Message-ID: <20230717145544.194786-6-den@openvz.org> Reviewed-by: Eric Blake [eblake: avoid intermediate variable] Signed-off-by: Eric Blake --- qemu-nbd.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/qemu-nbd.c b/qemu-nbd.c index f27613c..e30c9ac 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -323,7 +323,11 @@ static void *nbd_client_thread(void *arg) opts->device, srcpath); } else { /* Close stderr so that the qemu-nbd process exits. */ - dup2(STDOUT_FILENO, STDERR_FILENO); + if (dup2(STDOUT_FILENO, STDERR_FILENO) < 0) { + error_report("Could not set stderr to /dev/null: %s", + strerror(errno)); + exit(EXIT_FAILURE); + } } if (nbd_client(fd) < 0) { @@ -1171,7 +1175,11 @@ int main(int argc, char **argv) } if (fork_process) { - dup2(STDOUT_FILENO, STDERR_FILENO); + if (dup2(STDOUT_FILENO, STDERR_FILENO) < 0) { + error_report("Could not set stderr to /dev/null: %s", + strerror(errno)); + exit(EXIT_FAILURE); + } } state = RUNNING; -- cgit v1.1