From: Joseph Sutton Date: Wed, 16 Aug 2023 03:57:53 +0000 (+1200) Subject: s4:kdc: Use smb_krb5_make_data() X-Git-Tag: tevent-0.16.0~872 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4b03aabe451bae6bbeadcaaf8c2ff62041511ca3;p=thirdparty%2Fsamba.git s4:kdc: Use smb_krb5_make_data() smb_krb5_make_data() sets the magic field, which we were previously ignoring. We should also not set krb5_data::length if krb5_data::data is NULL. Signed-off-by: Joseph Sutton Reviewed-by: Andrew Bartlett --- diff --git a/source4/kdc/mit_samba.c b/source4/kdc/mit_samba.c index fd5006736bd..9b3d092ec15 100644 --- a/source4/kdc/mit_samba.c +++ b/source4/kdc/mit_samba.c @@ -176,11 +176,12 @@ int mit_samba_generate_random_password(krb5_data *pwd) { TALLOC_CTX *tmp_ctx; char *password; + char *data = NULL; + const unsigned length = 24; if (pwd == NULL) { return EINVAL; } - pwd->length = 24; tmp_ctx = talloc_named(NULL, 0, @@ -189,18 +190,20 @@ int mit_samba_generate_random_password(krb5_data *pwd) return ENOMEM; } - password = generate_random_password(tmp_ctx, pwd->length, pwd->length); + password = generate_random_password(tmp_ctx, length, length); if (password == NULL) { talloc_free(tmp_ctx); return ENOMEM; } - pwd->data = strdup(password); + data = strdup(password); talloc_free(tmp_ctx); - if (pwd->data == NULL) { + if (data == NULL) { return ENOMEM; } + *pwd = smb_krb5_make_data(data, length); + return 0; }