s3:auth:sam_password_ok: fix allocation of a data blob.
authorMichael Adam <obnox@samba.org>
Wed, 30 Dec 2009 14:37:23 +0000 (15:37 +0100)
committerKarolin Seeger <kseeger@samba.org>
Mon, 25 Jan 2010 11:49:23 +0000 (12:49 +0100)
data_blob(mem_ctx, 16) does not use mem_ctx as a talloc ctx but
copies 16 bytes from mem_ctx into the newly allocated data blob.
This can not have been intentional. A blank uint8_t array of
length 16 is allocated by passing NULL instead of mem_ctx.
And using data_blob_talloc(mem_ctx, NULL, 16) adds the allocated
blank 16 byte array to mem_ctx - so this is what must have been
intended.

Michael
(cherry picked from commit c3bd0b5951f09f102abaa19fb2e1f55711b975d2)

source3/auth/auth_sam.c

index 381ad5b83ca60c860e6edf6816cdc2fadd61385c..42ede641412c76febe24858ec7a5e0e81a457157 100644 (file)
@@ -82,7 +82,7 @@ static NTSTATUS sam_password_ok(const struct auth_context *auth_context,
        }
 
        if (client_lm_hash || client_nt_hash) {
-               *user_sess_key = data_blob(mem_ctx, 16);
+               *user_sess_key = data_blob_talloc(mem_ctx, NULL, 16);
                if (!user_sess_key->data) {
                        return NT_STATUS_NO_MEMORY;
                }