diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2015-11-17 13:57:35 +1300 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2015-11-17 13:57:35 +1300 |
commit | ec217852d8c3fa04c7aca8a34d02f60070f88701 (patch) | |
tree | e61478892c943dfdd0524a38105550f598c60d96 /src | |
parent | 59b8d005821cb60f00a5119d8022f314bb38c1db (diff) | |
download | lightdm-ec217852d8c3fa04c7aca8a34d02f60070f88701.tar.gz |
Handle XDMCP Request packet with no addresses
Diffstat (limited to 'src')
-rw-r--r-- | src/xdmcp-server.c | 5 |
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++) |