summaryrefslogtreecommitdiff
path: root/source4/kdc
diff options
context:
space:
mode:
Diffstat (limited to 'source4/kdc')
-rw-r--r--source4/kdc/pac-glue.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/source4/kdc/pac-glue.c b/source4/kdc/pac-glue.c
index 5f3a718abd..637f39aa74 100644
--- a/source4/kdc/pac-glue.c
+++ b/source4/kdc/pac-glue.c
@@ -47,6 +47,7 @@ void samba_kdc_plugin_fini(void *ptr)
static krb5_error_code make_pac(krb5_context context,
TALLOC_CTX *mem_ctx,
+ struct smb_iconv_convenience *iconv_convenience,
struct auth_serversupplied_info *server_info,
krb5_pac *pac)
{
@@ -73,7 +74,7 @@ static krb5_error_code make_pac(krb5_context context,
logon_info.info->info3 = *info3;
- ndr_err = ndr_push_struct_blob(&pac_out, mem_ctx, lp_iconv_convenience(global_loadparm), &logon_info,
+ ndr_err = ndr_push_struct_blob(&pac_out, mem_ctx, iconv_convenience, &logon_info,
(ndr_push_flags_fn_t)ndr_push_PAC_LOGON_INFO_CTR);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
nt_status = ndr_map_error2ntstatus(ndr_err);
@@ -113,6 +114,7 @@ krb5_error_code samba_kdc_get_pac(void *priv,
struct hdb_ldb_private *private = talloc_get_type(client->ctx, struct hdb_ldb_private);
TALLOC_CTX *mem_ctx = talloc_named(private, 0, "samba_get_pac context");
unsigned int userAccountControl;
+ struct smb_iconv_convenience *iconv_convenience = lp_iconv_convenience(global_loadparm);
if (!mem_ctx) {
return ENOMEM;
@@ -138,7 +140,7 @@ krb5_error_code samba_kdc_get_pac(void *priv,
return ENOMEM;
}
- ret = make_pac(context, mem_ctx, server_info, pac);
+ ret = make_pac(context, mem_ctx, iconv_convenience, server_info, pac);
talloc_free(mem_ctx);
return ret;
@@ -164,6 +166,7 @@ krb5_error_code samba_kdc_reget_pac(void *priv, krb5_context context,
struct PAC_LOGON_INFO_CTR logon_info;
union netr_Validation validation;
struct auth_serversupplied_info *server_info_out;
+ struct smb_iconv_convenience *iconv_convenience = lp_iconv_convenience(global_loadparm);
TALLOC_CTX *mem_ctx = talloc_named(private, 0, "samba_get_pac context");
@@ -190,7 +193,7 @@ krb5_error_code samba_kdc_reget_pac(void *priv, krb5_context context,
return ENOMEM;
}
- ndr_err = ndr_pull_struct_blob(&pac_in, mem_ctx, lp_iconv_convenience(global_loadparm), &logon_info,
+ ndr_err = ndr_pull_struct_blob(&pac_in, mem_ctx, iconv_convenience, &logon_info,
(ndr_pull_flags_fn_t)ndr_pull_PAC_LOGON_INFO_CTR);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err) || !logon_info.info) {
nt_status = ndr_map_error2ntstatus(ndr_err);
@@ -213,7 +216,7 @@ krb5_error_code samba_kdc_reget_pac(void *priv, krb5_context context,
/* We will compleatly regenerate this pac */
krb5_pac_free(context, *pac);
- ret = make_pac(context, mem_ctx, server_info_out, pac);
+ ret = make_pac(context, mem_ctx, iconv_convenience, server_info_out, pac);
talloc_free(mem_ctx);
return ret;