network: connman_network_set_nameservers() handle NULL argument correctly
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Wed, 16 Nov 2011 14:09:51 +0000 (15:09 +0100)
committerDaniel Wagner <daniel.wagner@bmw-carit.de>
Wed, 16 Nov 2011 14:10:51 +0000 (15:10 +0100)
Trying to access an array pointer which points to NULL is generally a
bad idea. Instead just return early.

src/network.c

index 058495d..1bb1a6e 100644 (file)
@@ -1392,7 +1392,7 @@ int connman_network_set_nameservers(struct connman_network *network,
                                const char *nameservers)
 {
        struct connman_service *service;
-       char **nameservers_array = NULL;
+       char **nameservers_array;
        int i;
 
        DBG("network %p nameservers %s", network, nameservers);
@@ -1403,8 +1403,10 @@ int connman_network_set_nameservers(struct connman_network *network,
 
        __connman_service_nameserver_clear(service);
 
-       if (nameservers != NULL)
-               nameservers_array = g_strsplit(nameservers, " ", 0);
+       if (nameservers == NULL)
+               return 0;
+
+       nameservers_array = g_strsplit(nameservers, " ", 0);
 
        for (i = 0; nameservers_array[i] != NULL; i++) {
                __connman_service_nameserver_append(service,