From: Daniel Wagner <[email protected]>

connman_setting_get_uint_list() can return NULL.
---
 src/service.c |   33 ++++++++++++++++++++++-----------
 1 file changed, 22 insertions(+), 11 deletions(-)

diff --git a/src/service.c b/src/service.c
index 07c1eca..834e033 100644
--- a/src/service.c
+++ b/src/service.c
@@ -5557,6 +5557,26 @@ static void update_from_network(struct connman_service 
*service,
        }
 }
 
+static connman_bool_t is_autoconnect(struct connman_network *network,
+                                       enum connman_service_type type)
+{
+       unsigned int *auto_connect_types;
+       int i;
+
+       auto_connect_types = 
connman_setting_get_uint_list("DefaultAutoConnectTechnologies");
+       if (auto_connect_types == NULL)
+               return FALSE;
+
+       for (i = 0; auto_connect_types[i] != 0; i += 1) {
+               if (type != auto_connect_types[i])
+                       continue;
+
+               return TRUE;
+       }
+
+       return FALSE;
+}
+
 /**
  * __connman_service_create_from_network:
  * @network: network structure
@@ -5569,8 +5589,7 @@ struct connman_service * 
__connman_service_create_from_network(struct connman_ne
        struct connman_device *device;
        const char *ident, *group;
        char *name;
-       unsigned int *auto_connect_types;
-       int i, index;
+       int index;
 
        DBG("network %p", network);
 
@@ -5603,15 +5622,7 @@ struct connman_service * 
__connman_service_create_from_network(struct connman_ne
        }
 
        service->type = convert_network_type(network);
-
-       auto_connect_types = 
connman_setting_get_uint_list("DefaultAutoConnectTechnologies");
-       service->autoconnect = FALSE;
-       for (i = 0; auto_connect_types[i] != 0; i += 1) {
-               if (service->type == auto_connect_types[i]) {
-                       service->autoconnect = TRUE;
-                       break;
-               }
-       }
+       service->autoconnect = is_autoconnect(network, service->type);
 
        switch (service->type) {
        case CONNMAN_SERVICE_TYPE_UNKNOWN:
-- 
1.7.10.rc3.1.gb3065

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to