diff options
author | Denis V. Lunev <den@openvz.org> | 2023-07-17 16:55:44 +0200 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2023-07-19 15:25:27 -0500 |
commit | 173776f74d072f375b3815a4beaa6ddc7bf26cab (patch) | |
tree | d0f00a0426af6e18a6318aafba9ab348391fade1 /qemu-nbd.c | |
parent | e0892ced0534b1009d009e32c3e338456018ab15 (diff) |
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.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/qemu-nbd.c b/qemu-nbd.c index f27613cb57..e30c9ac179 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; |