From 0306ba047e5da95fe92219967944f7466e35a492 Mon Sep 17 00:00:00 2001 From: Patrik Flykt Date: Thu, 3 May 2012 16:28:41 +0300 Subject: gdhcp: Add option and length checks --- gdhcp/client.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gdhcp') diff --git a/gdhcp/client.c b/gdhcp/client.c index 3d27b4a0..b9f8da61 100644 --- a/gdhcp/client.c +++ b/gdhcp/client.c @@ -1596,6 +1596,9 @@ static GList *get_addresses(GDHCPClient *dhcp_client, uint8_t *option; char *str; + if (value == NULL || len < 4) + return NULL; + iaid = get_uint32(&value[0]); if (dhcp_client->iaid != iaid) return NULL; @@ -1700,6 +1703,9 @@ static GList *get_dhcpv6_option_value_list(GDHCPClient *dhcp_client, char *str; int i; + if (value == NULL) + return NULL; + switch (code) { case G_DHCPV6_DNS_SERVERS: /* RFC 3646, chapter 3 */ case G_DHCPV6_SNTP_SERVERS: /* RFC 4075, chapter 4 */ -- cgit v1.2.3