diff options
author | Pavel Březina <pbrezina@redhat.com> | 2013-11-01 12:27:59 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-11-07 11:16:02 +0100 |
commit | 58f0025f9abfd3607813fecc282141acc698131c (patch) | |
tree | 49ae56742c6d9811a09e8a12ab7f571890070424 /src/providers | |
parent | aa0e78c283c1a6e652e50f913f5e4e8d82e8554c (diff) | |
download | sssd-58f0025f9abfd3607813fecc282141acc698131c.tar.gz sssd-58f0025f9abfd3607813fecc282141acc698131c.tar.xz sssd-58f0025f9abfd3607813fecc282141acc698131c.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.c | 3 | ||||
-rw-r--r-- | src/providers/ad/ad_subdomains.c | 2 | ||||
-rw-r--r-- | src/providers/ldap/ldap_id.c | 4 | ||||
-rw-r--r-- | src/providers/ldap/sdap_async_initgroups_ad.c | 2 |
4 files changed, 7 insertions, 4 deletions
diff --git a/src/providers/ad/ad_id.c b/src/providers/ad/ad_id.c index 87b69c668..736f9bb18 100644 --- a/src/providers/ad/ad_id.c +++ b/src/providers/ad/ad_id.c @@ -291,8 +291,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 9911dfe0f..45e7cc657 100644 --- a/src/providers/ad/ad_subdomains.c +++ b/src/providers/ad/ad_subdomains.c @@ -172,7 +172,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, |