Clear ListenTransConns entries in CloseWellKnownConnections

Since _XSERVTransClose frees the connection pointer passed to it,
remove that pointer from the array, so we don't try to double free it
if we come back into CloseWellKnownConnections again.

Should fix https://bugzilla.yoctoproject.org/show_bug.cgi?id=6665 in which
the shutdown section of the main() loop called CloseWellKnownConnections()
and then moved on to ddxGiveUp(), which failed to release the VT and thus
called AbortServer(), which called CloseWellKnownConnections() again.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Alan Coopersmith 2015-03-09 09:55:57 -07:00 committed by Peter Hutterer
parent 6d3cf35a6f
commit 7ea64fb437

View File

@ -513,8 +513,13 @@ CloseWellKnownConnections(void)
{
int i;
for (i = 0; i < ListenTransCount; i++)
_XSERVTransClose(ListenTransConns[i]);
for (i = 0; i < ListenTransCount; i++) {
if (ListenTransConns[i] != NULL) {
_XSERVTransClose(ListenTransConns[i]);
ListenTransConns[i] = NULL;
}
}
ListenTransCount = 0;
}
static void