s3: vfs: time_audit: fix handling of token_blob in smb_time_audit_offload_read_recv()
authorRalph Wuerthner <ralph.wuerthner@de.ibm.com>
Wed, 8 Aug 2018 15:42:18 +0000 (17:42 +0200)
committerKarolin Seeger <kseeger@samba.org>
Thu, 23 Aug 2018 08:38:28 +0000 (10:38 +0200)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13568

Signed-off-by: Ralph Wuerthner <ralph.wuerthner@de.ibm.com>
Reviewed-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit 4909b966050c921b0a6a32285fee55f5f14dc3ff)

source3/modules/vfs_time_audit.c

index 4a0ec89..9b51568 100644 (file)
@@ -1930,13 +1930,12 @@ static NTSTATUS smb_time_audit_offload_read_recv(
        struct tevent_req *req,
        struct vfs_handle_struct *handle,
        TALLOC_CTX *mem_ctx,
-       DATA_BLOB *_token_blob)
+       DATA_BLOB *token_blob)
 {
        struct time_audit_offload_read_state *state = tevent_req_data(
                req, struct time_audit_offload_read_state);
        struct timespec ts_recv;
        double timediff;
-       DATA_BLOB token_blob;
        NTSTATUS status;
 
        clock_gettime_mono(&ts_recv);
@@ -1950,13 +1949,8 @@ static NTSTATUS smb_time_audit_offload_read_recv(
                return status;
        }
 
-       token_blob = data_blob_talloc(mem_ctx,
-                                     state->token_blob.data,
-                                     state->token_blob.length);
-       if (token_blob.data == NULL) {
-               tevent_req_received(req);
-               return NT_STATUS_NO_MEMORY;
-       }
+       token_blob->length = state->token_blob.length;
+       token_blob->data = talloc_move(mem_ctx, &state->token_blob.data);
 
        tevent_req_received(req);
        return NT_STATUS_OK;