socket: don't attempt to reconnect a TCP socket in server mode
Commit c3767ed0eb introduced a possible SEGV when
using a socket chardev with server=on because it assumes that all TCP sockets
are in client mode.
This patch adds a check to only reconnect when in client mode.
Cc: Lei Li <lilei@linux.vnet.ibm.com>
Reported-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
			
			
This commit is contained in:
		| @@ -2148,10 +2148,12 @@ static int tcp_chr_write(CharDriverState *chr, const uint8_t *buf, int len) | ||||
|     TCPCharDriver *s = chr->opaque; | ||||
|     if (s->connected) { | ||||
|         return send_all(s->fd, buf, len); | ||||
|     } else { | ||||
|     } else if (s->listen_fd == -1) { | ||||
|         /* (Re-)connect for unconnected writing */ | ||||
|         tcp_chr_connect(chr); | ||||
|         return 0; | ||||
|     } else { | ||||
|         return len; | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user