diff options
| author | Pavel Březina <pbrezina@redhat.com> | 2016-11-25 13:08:11 +0100 |
|---|---|---|
| committer | Lukas Slebodnik <lslebodn@redhat.com> | 2016-12-19 23:22:40 +0100 |
| commit | 39b4feb503082cbbd036b2dcd741fe2ffe4aed76 (patch) | |
| tree | c2da671d9a5c0803a7b924a5f72e67436e14c02f /src/responder/common/cache_req/plugins | |
| parent | 7b293a5095ef3e63cd2e3f2ff01b7484bf6dcd38 (diff) | |
| download | sssd-39b4feb503082cbbd036b2dcd741fe2ffe4aed76.tar.gz sssd-39b4feb503082cbbd036b2dcd741fe2ffe4aed76.tar.xz sssd-39b4feb503082cbbd036b2dcd741fe2ffe4aed76.zip | |
cache_req: fix initgroups by name
If overriden name was provided we stole already freed value.
Name is attached to "user" talloc context which we freed before
stealing the value. This caused crash in SSSD.
Resolves:
https://fedorahosted.org/sssd/ticket/3151
Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
Diffstat (limited to 'src/responder/common/cache_req/plugins')
| -rw-r--r-- | src/responder/common/cache_req/plugins/cache_req_initgroups_by_name.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/responder/common/cache_req/plugins/cache_req_initgroups_by_name.c b/src/responder/common/cache_req/plugins/cache_req_initgroups_by_name.c index cc3795d56..8755d7e9c 100644 --- a/src/responder/common/cache_req/plugins/cache_req_initgroups_by_name.c +++ b/src/responder/common/cache_req/plugins/cache_req_initgroups_by_name.c @@ -152,9 +152,9 @@ cache_req_initgroups_by_name_dpreq_params(TALLOC_CTX *mem_ctx, } name = ldb_msg_find_attr_as_string(user->msgs[0], SYSDB_NAME, NULL); - talloc_free(user); if (name == NULL) { DEBUG(SSSDBG_CRIT_FAILURE, "Bug: name cannot be NULL\n"); + talloc_free(user); return ERR_INTERNAL; } @@ -162,6 +162,8 @@ cache_req_initgroups_by_name_dpreq_params(TALLOC_CTX *mem_ctx, * views unless some error occurred. */ *_string = talloc_steal(mem_ctx, name); + talloc_free(user); + return EOK; } |
