[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 14/38] net/socket: Fix invalid socket type error
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH v3 14/38] net/socket: Fix invalid socket type error handling |
Date: |
Tue, 16 Oct 2018 19:41:34 +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 v3 03/38] block: Use warn_report() & friends to report warnings, (continued)
- [Qemu-devel] [PATCH v3 03/38] block: Use warn_report() & friends to report warnings, Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 18/38] vl: Clean up error reporting in parse_add_fd(), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 07/38] char: Use error_printf() to print help and such, Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 20/38] vl: Clean up error reporting in chardev_init_func(), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 10/38] ioapic: Fix error handling in realize(), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 13/38] l2tpv3: Improve -netdev/netdev_add/-net/... error reporting, Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 02/38] Use error_fatal to simplify obvious fatal errors (again), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 11/38] smbios: Clean up error handling in smbios_add(), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 16/38] xen/pt: Fix incomplete conversion to realize(), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 15/38] numa: Fix QMP command set-numa-node error handling, Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 14/38] net/socket: Fix invalid socket type error handling,
Markus Armbruster <=
- [Qemu-devel] [PATCH v3 22/38] vl: Clean up error reporting in mon_init_func(), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 06/38] vfio: Clean up error reporting after previous commit, Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 29/38] tpm: Clean up error reporting in tpm_init_tpmdev(), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 32/38] vl: Assert drive_new() does not fail in default_drive(), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 38/38] vpc: Fail open on bad header checksum, Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 24/38] vl: Clean up error reporting in device_init_func(), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 21/38] vl: Clean up error reporting in machine_set_property(), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 23/38] vl: Clean up error reporting in parse_fw_cfg(), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 19/38] qom: Clean up error reporting in user_creatable_add_opts_foreach(), Markus Armbruster, 2018/10/16
- [Qemu-devel] [PATCH v3 17/38] seccomp: Clean up error reporting in parse_sandbox(), Markus Armbruster, 2018/10/16