summaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorDaniel P. Berrange2017-10-27 09:51:59 +0200
committerDaniel P. Berrange2017-11-28 11:48:04 +0100
commit2d7ad7c05e762d5b10a57eba9af1bb6b41700854 (patch)
tree89d6cd38e4b59739e7851de3033399348f0b6448 /util
parentMerge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.11-20171127' int... (diff)
downloadqemu-2d7ad7c05e762d5b10a57eba9af1bb6b41700854.tar.gz
qemu-2d7ad7c05e762d5b10a57eba9af1bb6b41700854.tar.xz
qemu-2d7ad7c05e762d5b10a57eba9af1bb6b41700854.zip
sockets: avoid crash when cleaning up sockets for an invalid FD
If socket_listen_cleanup is passed an invalid FD, then querying the socket local address will fail. We must thus be prepared for the returned addr to be NULL Reported-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'util')
-rw-r--r--util/qemu-sockets.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
index 8b75541ce4..a1cf47e625 100644
--- a/util/qemu-sockets.c
+++ b/util/qemu-sockets.c
@@ -1079,6 +1079,9 @@ void socket_listen_cleanup(int fd, Error **errp)
SocketAddress *addr;
addr = socket_local_address(fd, errp);
+ if (!addr) {
+ return;
+ }
if (addr->type == SOCKET_ADDRESS_TYPE_UNIX
&& addr->u.q_unix.path) {