From: Daniel Wagner <[email protected]>
---
plugins/session_policy_ivi.c | 31 ++++++++++++++++++++++---------
1 file changed, 22 insertions(+), 9 deletions(-)
diff --git a/plugins/session_policy_ivi.c b/plugins/session_policy_ivi.c
index 1218523..063e763 100644
--- a/plugins/session_policy_ivi.c
+++ b/plugins/session_policy_ivi.c
@@ -63,6 +63,27 @@ static void cleanup_policy(struct policy_data *policy)
g_free(policy);
}
+static struct connman_session_config *new_config(void)
+{
+ struct connman_session_config *config;
+
+ config = g_try_new0(struct connman_session_config, 1);
+ if (config == NULL)
+ return NULL;
+
+ config->priority = FALSE;
+ config->roaming_policy = CONNMAN_SESSION_ROAMING_POLICY_DEFAULT;
+ config->type = CONNMAN_SESSION_TYPE_ANY;
+ config->ecall = FALSE;
+ config->allowed_bearers = connman_session_allowed_bearers_any();
+ if (config->allowed_bearers == NULL) {
+ g_free(config);
+ return NULL;
+ }
+
+ return config;
+}
+
static void selinux_context_reply(unsigned char *context, unsigned int size,
void *user_data)
{
@@ -82,18 +103,10 @@ static void selinux_context_reply(unsigned char *context,
unsigned int size,
if (policy == NULL)
goto err;
- policy->config = g_try_new0(struct connman_session_config, 1);
+ policy->config = new_config();
if (policy->config == NULL)
goto err;
- policy->config->priority = FALSE;
- policy->config->roaming_policy = CONNMAN_SESSION_ROAMING_POLICY_DEFAULT;
- policy->config->type = CONNMAN_SESSION_TYPE_ANY;
- policy->config->ecall = FALSE;
- policy->config->allowed_bearers = connman_session_allowed_bearers_any();
- if (policy->config->allowed_bearers == NULL)
- goto err;
-
g_hash_table_replace(session_hash, data->session, policy);
(*data->callback)(data->session, policy->config, data->user_data);
--
1.7.12.1.382.gb0576a6
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman