summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2015-11-17 13:57:35 +1300
committerRobert Ancell <robert.ancell@canonical.com>2015-11-17 13:57:35 +1300
commitec217852d8c3fa04c7aca8a34d02f60070f88701 (patch)
treee61478892c943dfdd0524a38105550f598c60d96 /src
parent59b8d005821cb60f00a5119d8022f314bb38c1db (diff)
downloadlightdm-ec217852d8c3fa04c7aca8a34d02f60070f88701.tar.gz
Handle XDMCP Request packet with no addresses
Diffstat (limited to 'src')
-rw-r--r--src/xdmcp-server.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/xdmcp-server.c b/src/xdmcp-server.c
index 24381bdb..489e6bb3 100644
--- a/src/xdmcp-server.c
+++ b/src/xdmcp-server.c
@@ -363,6 +363,9 @@ choose_connection (XDMCPPacket *packet, GInetAddress *source_address)
gssize index = -1;
addresses_length = packet->Request.n_connections;
+ if (addresses_length == 0)
+ return NULL;
+
addresses = malloc (sizeof (GInetAddress *) * addresses_length);
for (i = 0; i < addresses_length; i++)
addresses[i] = connection_to_address (&packet->Request.connections[i]);
@@ -377,7 +380,7 @@ choose_connection (XDMCPPacket *packet, GInetAddress *source_address)
index = find_address (addresses, addresses_length, g_inet_address_get_family (source_address));
/* Otherwise use the first available */
- if (index < 0 && addresses_length > 0)
+ if (index < 0)
index = 0;
for (i = 0; i < addresses_length; i++)