diff options
| author | Markus Armbruster | 2020-04-22 15:07:15 +0200 |
|---|---|---|
| committer | Markus Armbruster | 2020-04-29 08:01:52 +0200 |
| commit | fdceb4ab4d7ba920bb094ab477df4221261b291e (patch) | |
| tree | 0d67a3ee99a237cb76da2f7de530eab8af01d205 /migration | |
| parent | xen/pt: Fix flawed conversion to realize() (diff) | |
| download | qemu-fdceb4ab4d7ba920bb094ab477df4221261b291e.tar.gz qemu-fdceb4ab4d7ba920bb094ab477df4221261b291e.tar.xz qemu-fdceb4ab4d7ba920bb094ab477df4221261b291e.zip | |
io: Fix qio_channel_socket_close() error handling
The Error ** argument must be NULL, &error_abort, &error_fatal, or a
pointer to a variable containing NULL. Passing an argument of the
latter kind twice without clearing it in between is wrong: if the
first call sets an error, it no longer points to NULL for the second
call.
qio_channel_socket_close() passes @errp first to
socket_listen_cleanup(), and then, if closesocket() fails, to
error_setg_errno(). If socket_listen_cleanup() failed, this will trip
the assertion in error_setv().
Fix by ignoring a second error.
Fixes: 73564c407caedf992a1c688b5fea776a8b56ba2a
Cc: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200422130719.28225-11-armbru@redhat.com>
Diffstat (limited to 'migration')
0 files changed, 0 insertions, 0 deletions
