From 5cceb47667c0665629bb474f73be1d2d8f1e1b5b Mon Sep 17 00:00:00 2001 From: Sumit Bose Date: Tue, 19 Feb 2019 12:30:40 +0100 Subject: [PATCH] ipa_sam: remove dependency to talloc_strackframe.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Recent Samba versions removed some header files which did include non-public APIs. As a result talloc_strackframe.h and memory.h (for SAFE_FREE) are not available anymore. This patch replaces the use of the non-public APIs with public ones. Reviewed-By: Alexander Bokovoy Reviewed-By: Rob Crittenden Reviewed-By: François Cami (cherry picked from commit d1f5ed64e16d65b9df45cc0eac7d2724dcae7b67) --- daemons/ipa-sam/ipa_sam.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/daemons/ipa-sam/ipa_sam.c b/daemons/ipa-sam/ipa_sam.c index 2251f3ddc..755f44d68 100644 --- a/daemons/ipa-sam/ipa_sam.c +++ b/daemons/ipa-sam/ipa_sam.c @@ -19,7 +19,6 @@ #include #include #include -#include #ifndef _SAMBA_UTIL_H_ bool trim_string(char *s, const char *front, const char *back); @@ -881,9 +880,13 @@ static bool ipasam_uid_to_sid(struct pdb_methods *methods, uid_t uid, struct dom_sid *user_sid = NULL; int rc; enum idmap_error_code err; - TALLOC_CTX *tmp_ctx = talloc_stackframe(); struct unixid id; + TALLOC_CTX *tmp_ctx = talloc_new(priv); + if (tmp_ctx == NULL) { + goto done; + } + /* Fast fail if we get a request for uidNumber=0 because it currently * will never exist in the directory * Saves an expensive LDAP call of which failure will never be cached @@ -968,9 +971,13 @@ static bool ipasam_gid_to_sid(struct pdb_methods *methods, gid_t gid, size_t c; int rc; enum idmap_error_code err; - TALLOC_CTX *tmp_ctx = talloc_stackframe(); struct unixid id; + TALLOC_CTX *tmp_ctx = talloc_new(priv); + if (tmp_ctx == NULL) { + goto done; + } + filter = talloc_asprintf(tmp_ctx, "(|(&(gidNumber=%u)" "(objectClass=%s))" @@ -3749,7 +3756,8 @@ static void ipasam_free_private_data(void **vp) (*ipasam_state)->result = NULL; } if ((*ipasam_state)->domain_dn != NULL) { - SAFE_FREE((*ipasam_state)->domain_dn); + free((*ipasam_state)->domain_dn); + (*ipasam_state)->domain_dn = NULL; } *ipasam_state = NULL; -- 2.21.0