Merge "Fix derefrencing of NULL pointer" into tizen
[platform/upstream/connman.git] / plugins / session_policy_local.c
old mode 100644 (file)
new mode 100755 (executable)
index b2369bd..9beb098
@@ -271,10 +271,8 @@ static void get_uid_reply(unsigned int uid, void *user_data, int err)
 
        DBG("session %p uid %d", policy->session, uid);
 
-       if (err < 0) {
-               cleanup_config(policy);
+       if (err < 0)
                goto err;
-       }
 
        pwd = getpwuid((uid_t)uid);
        if (!pwd) {
@@ -333,7 +331,7 @@ static void get_uid_reply(unsigned int uid, void *user_data, int err)
        return;
 
 err:
-       failed_create(NULL, cb, cbd->user_data, err);
+       failed_create(policy, cb, cbd->user_data, err);
        g_free(cbd);
        g_free(groups);
 }
@@ -459,6 +457,8 @@ static int load_policy(GKeyFile *keyfile, const char *groupname,
        str = g_key_file_get_string(keyfile, groupname, "AllowedBearers",
                                NULL);
        if (str) {
+               g_slist_free(config->allowed_bearers);
+               config->allowed_bearers = NULL;
                tokens = g_strsplit(str, " ", 0);
 
                for (i = 0; tokens[i]; i++) {
@@ -623,7 +623,7 @@ static int load_file(const char *filename, struct policy_file *file)
 
        for (i = 0; groupnames[i]; i++) {
                group = g_new0(struct policy_group, 1);
-               group->config = g_new0(struct connman_session_config, 1);
+               group->config = connman_session_create_default_config();
 
                err = load_policy(keyfile, groupnames[i], group);
                if (err < 0) {