X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fdhcp.c;h=f4de736a5ab45ad56b92da888d5f892f6c7b7d03;hb=53b7e1339c05b178697e611f881594ed78c02d65;hp=0ed5ead8c0fda7aa92e5567e4d6d90f1b6d892e6;hpb=b18d9798b3a0ae46ed87d6d2be8d5a474bf3ab1e;p=framework%2Fconnectivity%2Fconnman.git diff --git a/src/dhcp.c b/src/dhcp.c index 0ed5ead..f4de736 100644 --- a/src/dhcp.c +++ b/src/dhcp.c @@ -2,7 +2,7 @@ * * Connection Manager * - * Copyright (C) 2007-2010 Intel Corporation. All rights reserved. + * Copyright (C) 2007-2012 Intel Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -244,8 +244,7 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) ip_change = FALSE; option = g_dhcp_client_get_option(dhcp_client, G_DHCP_DNS_SERVER); - for (ns_entries = 0, list = option; list; list = list->next) - ns_entries += 1; + ns_entries = g_list_length(option); nameservers = g_try_new0(char *, ns_entries + 1); if (nameservers != NULL) { for (i = 0, list = option; list; list = list->next, i++) @@ -262,8 +261,7 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) hostname = g_strdup(option->data); option = g_dhcp_client_get_option(dhcp_client, G_DHCP_NTP_SERVER); - for (ns_entries = 0, list = option; list; list = list->next) - ns_entries += 1; + ns_entries = g_list_length(option); timeservers = g_try_new0(char *, ns_entries + 1); if (timeservers != NULL) { for (i = 0, list = option; list; list = list->next, i++) @@ -294,7 +292,8 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) dhcp->nameservers = nameservers; - for (i = 0; dhcp->nameservers[i] != NULL; i++) { + for (i = 0; dhcp->nameservers != NULL && + dhcp->nameservers[i] != NULL; i++) { __connman_service_nameserver_append(service, dhcp->nameservers[i], FALSE); } @@ -313,7 +312,8 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) dhcp->timeservers = timeservers; - for (i = 0; dhcp->timeservers[i] != NULL; i++) { + for (i = 0; dhcp->timeservers != NULL && + dhcp->timeservers[i] != NULL; i++) { __connman_service_timeserver_append(service, dhcp->timeservers[i]); }