[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 14/35] net/socket: Fix invalid socket type error
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH v2 14/35] net/socket: Fix invalid socket type error handling |
Date: |
Mon, 15 Oct 2018 13:52:48 +0200 |
Calling error_report() in a function that takes an Error ** argument
is suspicious. net_socket_fd_init() does that, and then fails without
setting an error. Wrong. I didn't analyze how exactly this can
break. A caller that reports the error on failure would crash.
Broken when commit c37f0bb1d0d (v2.11.0) converted the function to
Error. Fix by calling error_setg() instead of error_report().
Fixes: c37f0bb1d0d24e3a6b5f4659bb305913dcb798a6
Cc: Jason Wang <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
---
net/socket.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/socket.c b/net/socket.c
index 6917fbcbf5..90ef3517be 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -453,8 +453,8 @@ static NetSocketState *net_socket_fd_init(NetClientState
*peer,
case SOCK_STREAM:
return net_socket_fd_init_stream(peer, model, name, fd, is_connected);
default:
- error_report("socket type=%d for fd=%d must be either"
- " SOCK_DGRAM or SOCK_STREAM", so_type, fd);
+ error_setg(errp, "socket type=%d for fd=%d must be either"
+ " SOCK_DGRAM or SOCK_STREAM", so_type, fd);
closesocket(fd);
}
return NULL;
--
2.17.1
- [Qemu-devel] [PATCH v2 19/35] qom: Clean up error reporting in user_creatable_add_opts_foreach(), (continued)
- [Qemu-devel] [PATCH v2 19/35] qom: Clean up error reporting in user_creatable_add_opts_foreach(), Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 20/35] vl: Clean up error reporting in chardev_init_func(), Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 18/35] vl: Clean up error reporting in parse_add_fd(), Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 34/35] vl: Fix exit status for -drive format=help, Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 11/35] smbios: Clean up error handling in smbios_add(), Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 21/35] vl: Clean up error reporting in machine_set_property(), Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 10/35] ioapic: Fix error handling in realize(), Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 35/35] vl: Simplify call of parse_name(), Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 32/35] vl: Assert drive_new() does not fail in default_drive(), Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 25/35] ui/keymaps: Fix handling of erroneous include files, Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 14/35] net/socket: Fix invalid socket type error handling,
Markus Armbruster <=
- [Qemu-devel] [PATCH v2 33/35] blockdev: Convert drive_new() to Error, Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 09/35] pc: Fix machine property nvdimm-persistence error handling, Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 05/35] vfio: Use warn_report() & friends to report warnings, Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 29/35] tpm: Clean up error reporting in tpm_init_tpmdev(), Markus Armbruster, 2018/10/15
- [Qemu-devel] [PATCH v2 07/35] char: Use error_printf() to print help and such, Markus Armbruster, 2018/10/15