aboutsummaryrefslogtreecommitdiff
path: root/qemu-nbd.c
diff options
context:
space:
mode:
authorDenis V. Lunev <den@openvz.org>2023-07-17 16:55:44 +0200
committerEric Blake <eblake@redhat.com>2023-07-19 15:25:27 -0500
commit173776f74d072f375b3815a4beaa6ddc7bf26cab (patch)
treed0f00a0426af6e18a6318aafba9ab348391fade1 /qemu-nbd.c
parente0892ced0534b1009d009e32c3e338456018ab15 (diff)
downloadqemu-173776f74d072f375b3815a4beaa6ddc7bf26cab.zip
qemu-173776f74d072f375b3815a4beaa6ddc7bf26cab.tar.gz
qemu-173776f74d072f375b3815a4beaa6ddc7bf26cab.tar.bz2
qemu-nbd: handle dup2() error when qemu-nbd finished setup process
Fail on error, we are in trouble. Signed-off-by: Denis V. Lunev <den@openvz.org> CC: Eric Blake <eblake@redhat.com> CC: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Message-ID: <20230717145544.194786-6-den@openvz.org> Reviewed-by: Eric Blake <eblake@redhat.com> [eblake: avoid intermediate variable] Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'qemu-nbd.c')
-rw-r--r--qemu-nbd.c12
1 files 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;