From ba71b69f94f00a6f6910597185610668e79c10be Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Fri, 1 Jan 2016 17:34:41 -0800 Subject: Avoid segfault in CloseWellKnownConnections when using -displayfd When -displayfd is looping through the possible display ids to use, if it can't open all the listening sockets for one (say when :0 is already in use), it calls CloseWellKnownConnections to close all the ListenTransConns entries before the point that ListenTransFds was allocated & initialized, so CloseWellKnownConnections would segfault trying to read entries from a NULL ListenTransFds pointer. Introduced by commit 7b02f0b8 Signed-off-by: Alan Coopersmith Reviewed-by: Keith Packard --- os/connection.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'os') diff --git a/os/connection.c b/os/connection.c index 8e7513902..2a4fc8db8 100644 --- a/os/connection.c +++ b/os/connection.c @@ -523,7 +523,8 @@ CloseWellKnownConnections(void) if (ListenTransConns[i] != NULL) { _XSERVTransClose(ListenTransConns[i]); ListenTransConns[i] = NULL; - RemoveNotifyFd(ListenTransFds[i]); + if (ListenTransFds != NULL) + RemoveNotifyFd(ListenTransFds[i]); } } ListenTransCount = 0; -- cgit v1.2.3