]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
char: don't fail when client is not connected
authorPavel Dovgalyuk <pavel.dovgalyuk@ispras.ru>
Tue, 9 Feb 2021 05:49:30 +0000 (08:49 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 25 Feb 2021 13:14:33 +0000 (14:14 +0100)
This patch checks that ioc is not null before
using it in tcp socket tcp_chr_add_watch function.

The failure occurs in replay mode of the execution,
when monitor and serial port are tcp servers,
and there are no clients connected to them:

-monitor tcp:127.0.0.1:8081,server,nowait
-serial tcp:127.0.0.1:8082,server,nowait

Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <161284977034.741841.12565530923825663110.stgit@pasha-ThinkPad-X280>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
chardev/char-socket.c

index 9061981f6d3eb248cb06b0cd03c151fb8a04adef..b7863b8aaef2abd37ff10b0827aaf09687e4517a 100644 (file)
@@ -387,6 +387,9 @@ static ssize_t tcp_chr_recv(Chardev *chr, char *buf, size_t len)
 static GSource *tcp_chr_add_watch(Chardev *chr, GIOCondition cond)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
+    if (!s->ioc) {
+        return NULL;
+    }
     return qio_channel_create_watch(s->ioc, cond);
 }