From 78937243dc5f8a9aebe687f017f3de8ca7666a23 Mon Sep 17 00:00:00 2001 From: Joseph Sutton Date: Fri, 24 Dec 2021 16:58:22 +1300 Subject: [PATCH] s4:kdc: Adapt samba_wdc_check_client_access() to upstream Heimdal NOTE: THIS COMMIT WON'T COMPILE/WORK ON ITS OWN! Signed-off-by: Joseph Sutton Reviewed-by: Stefan Metzmacher --- source4/kdc/wdc-samba4.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/source4/kdc/wdc-samba4.c b/source4/kdc/wdc-samba4.c index 71f057e485a..50e3d135c1b 100644 --- a/source4/kdc/wdc-samba4.c +++ b/source4/kdc/wdc-samba4.c @@ -843,27 +843,21 @@ static void samba_kdc_build_edata_reply(NTSTATUS nt_status, krb5_data *e_data) return; } - static krb5_error_code samba_wdc_check_client_access(void *priv, - krb5_context context, - krb5_kdc_configuration *config, - hdb_entry_ex *client_ex, const char *client_name, - hdb_entry_ex *server_ex, const char *server_name, - KDC_REQ *req, - METHOD_DATA *md) + astgs_request_t r) { struct samba_kdc_entry *kdc_entry; bool password_change; char *workstation; NTSTATUS nt_status; - kdc_entry = talloc_get_type(client_ex->ctx, struct samba_kdc_entry); - password_change = (server_ex && server_ex->entry.flags.change_pw); - workstation = get_netbios_name((TALLOC_CTX *)client_ex->ctx, - req->req_body.addresses); + kdc_entry = talloc_get_type(r->client->ctx, struct samba_kdc_entry); + password_change = (r->server && r->server->entry.flags.change_pw); + workstation = get_netbios_name((TALLOC_CTX *)r->client->ctx, + r->req.req_body.addresses); nt_status = samba_kdc_check_client_access(kdc_entry, - client_name, + r->cname, workstation, password_change); @@ -872,12 +866,12 @@ static krb5_error_code samba_wdc_check_client_access(void *priv, return ENOMEM; } - if (md) { + if (r->rep.padata) { int ret; krb5_data kd; samba_kdc_build_edata_reply(nt_status, &kd); - ret = krb5_padata_add(context, md, + ret = krb5_padata_add(r->context, r->rep.padata, KRB5_PADATA_PW_SALT, kd.data, kd.length); if (ret != 0) { -- 2.47.3