struct auth_user_info_dc **info_out,
struct PAC_DOMAIN_GROUP_MEMBERSHIP **resource_groups_out)
{
+ TALLOC_CTX *frame = NULL;
struct auth_user_info_dc *info = NULL;
struct PAC_DOMAIN_GROUP_MEMBERSHIP *resource_groups = NULL;
struct PAC_DOMAIN_GROUP_MEMBERSHIP **resource_groups_ptr = NULL;
*resource_groups_out = NULL;
}
+ frame = talloc_stackframe();
+
if (resource_groups_out != NULL && group_inclusion == AUTH_EXCLUDE_RESOURCE_GROUPS) {
/*
* Since we are creating a TGT, resource groups from our domain
resource_groups_ptr = &resource_groups;
}
- ret = kerberos_pac_to_user_info_dc(mem_ctx,
+ ret = kerberos_pac_to_user_info_dc(frame,
entry.pac,
context,
&info,
* We need to expand group memberships within our local domain,
* as the token might be generated by a trusted domain.
*/
- nt_status = authsam_update_user_info_dc(mem_ctx,
+ nt_status = authsam_update_user_info_dc(frame,
samdb,
info);
if (!NT_STATUS_IS_OK(nt_status)) {
goto out;
}
- *info_out = info;
- info = NULL;
+ *info_out = talloc_steal(mem_ctx, info);
if (resource_groups_out != NULL) {
- *resource_groups_out = resource_groups;
- resource_groups = NULL;
+ *resource_groups_out = talloc_steal(mem_ctx, resource_groups);
}
out:
- TALLOC_FREE(info);
- TALLOC_FREE(resource_groups);
-
+ talloc_free(frame);
return ret;
}