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