]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:kdc: Use smb_krb5_make_data()
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Wed, 16 Aug 2023 03:57:53 +0000 (15:57 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 21 Aug 2023 23:37:29 +0000 (23:37 +0000)
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 <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/kdc/mit_samba.c

index fd5006736bd03e0d3a1a8413c4f0b72c8b2b5459..9b3d092ec156a89435281d27ade78a7e142e9758 100644 (file)
@@ -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;
 }