summaryrefslogtreecommitdiffstats
path: root/src/providers
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2013-11-01 12:27:59 +0100
committerJakub Hrozek <jhrozek@redhat.com>2013-12-19 20:10:08 +0100
commit9fad27b40eff82bcdffa61cafcc54e2d7750faee (patch)
tree977154d7704f1d6c865663d388b312a3420dddb2 /src/providers
parent16c8b0e7a0ac40b078f98c9f8025d39a59dca9bb (diff)
downloadsssd-9fad27b40eff82bcdffa61cafcc54e2d7750faee.tar.gz
sssd-9fad27b40eff82bcdffa61cafcc54e2d7750faee.tar.xz
sssd-9fad27b40eff82bcdffa61cafcc54e2d7750faee.zip
free idmapped SIDs correctly
Resolves: https://fedorahosted.org/sssd/ticket/2133
Diffstat (limited to 'src/providers')
-rw-r--r--src/providers/ad/ad_id.c3
-rw-r--r--src/providers/ad/ad_subdomains.c2
-rw-r--r--src/providers/ldap/ldap_id.c4
-rw-r--r--src/providers/ldap/sdap_async_initgroups_ad.c2
4 files changed, 7 insertions, 4 deletions
diff --git a/src/providers/ad/ad_id.c b/src/providers/ad/ad_id.c
index dadb50da9..19bc65825 100644
--- a/src/providers/ad/ad_id.c
+++ b/src/providers/ad/ad_id.c
@@ -307,8 +307,7 @@ static errno_t ad_account_can_shortcut(struct be_ctx *be_ctx,
done:
if (sid != NULL) {
- /* FIXME: use library function when #2133 is fixed */
- talloc_free(sid);
+ sss_idmap_free_sid(idmap_ctx->map, sid);
}
if (ret == EOK) {
diff --git a/src/providers/ad/ad_subdomains.c b/src/providers/ad/ad_subdomains.c
index 28c5eafb3..dd692fb69 100644
--- a/src/providers/ad/ad_subdomains.c
+++ b/src/providers/ad/ad_subdomains.c
@@ -302,7 +302,9 @@ ad_subdom_store(struct ad_subdomains_ctx *ctx,
ret = EOK;
done:
+ sss_idmap_free_sid(ctx->sdap_id_ctx->opts->idmap_ctx->map, sid_str);
talloc_free(tmp_ctx);
+
return ret;
}
diff --git a/src/providers/ldap/ldap_id.c b/src/providers/ldap/ldap_id.c
index fad158533..793bc99eb 100644
--- a/src/providers/ldap/ldap_id.c
+++ b/src/providers/ldap/ldap_id.c
@@ -139,7 +139,7 @@ struct tevent_req *users_get_send(TALLOC_CTX *memctx,
attr_name = ctx->opts->user_map[SDAP_AT_USER_OBJECTSID].name;
ret = sss_filter_sanitize(state, sid, &clean_name);
- talloc_zfree(sid);
+ sss_idmap_free_sid(ctx->opts->idmap_ctx->map, sid);
if (ret != EOK) {
goto fail;
}
@@ -509,7 +509,7 @@ struct tevent_req *groups_get_send(TALLOC_CTX *memctx,
attr_name = ctx->opts->group_map[SDAP_AT_GROUP_OBJECTSID].name;
ret = sss_filter_sanitize(state, sid, &clean_name);
- talloc_zfree(sid);
+ sss_idmap_free_sid(ctx->opts->idmap_ctx->map, sid);
if (ret != EOK) {
goto fail;
}
diff --git a/src/providers/ldap/sdap_async_initgroups_ad.c b/src/providers/ldap/sdap_async_initgroups_ad.c
index a0841a799..aa72c8876 100644
--- a/src/providers/ldap/sdap_async_initgroups_ad.c
+++ b/src/providers/ldap/sdap_async_initgroups_ad.c
@@ -594,6 +594,8 @@ sdap_get_ad_tokengroups_initgroups_lookup_done(struct tevent_req *subreq)
in_transaction = false;
done:
+ sss_idmap_free_sid(state->opts->idmap_ctx->map, sid_str);
+
if (in_transaction) {
sret = sysdb_transaction_cancel(state->sysdb);
DEBUG(SSSDBG_FATAL_FAILURE,