From a2ba70a96d6c2aa088ac7ec6a42189b550a5b5c5 Mon Sep 17 00:00:00 2001 From: Ralph Wuerthner Date: Wed, 8 Aug 2018 17:42:18 +0200 Subject: [PATCH 1/2] s3: vfs: time_audit: fix handling of token_blob in smb_time_audit_offload_read_recv() BUG: https://bugzilla.samba.org/show_bug.cgi?id=13568 Signed-off-by: Ralph Wuerthner Reviewed-by: Christof Schmitt Reviewed-by: Jeremy Allison (cherry picked from commit 4909b966050c921b0a6a32285fee55f5f14dc3ff) --- source3/modules/vfs_time_audit.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/source3/modules/vfs_time_audit.c b/source3/modules/vfs_time_audit.c index 4a0ec89..9b51568 100644 --- a/source3/modules/vfs_time_audit.c +++ b/source3/modules/vfs_time_audit.c @@ -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; -- 1.8.3.1 From 5ca4a0dad65f46a06b0d4721aa50afa02104db01 Mon Sep 17 00:00:00 2001 From: Christof Schmitt Date: Fri, 10 Aug 2018 10:38:28 -0700 Subject: [PATCH 2/2] selftest: Load time_audit and full_audit modules for all tests Previously the only test was to load these modules to trigger the smb_vfs_assert_all_fns check. As these modules just pass through the calls, they can be loaded for all tests to ensure that the codepaths are exercised. This would have found the problem in smb_time_audit_offload_read_recv. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13568 Signed-off-by: Christof Schmitt Reviewed-by: Jeremy Allison Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Mon Aug 13 22:35:20 CEST 2018 on sn-devel-144 (cherry picked from commit a98f09a09db2fc7be85f9171b586e65344a39e92) --- selftest/target/Samba3.pm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 1ee5242..f6f852d 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -790,14 +790,10 @@ sub setup_simpleserver($$) my $simpleserver_options = " lanman auth = yes ntlm auth = yes - vfs objects = xattr_tdb streams_depot time_audit full_audit + vfs objects = xattr_tdb streams_depot change notify = no smb encrypt = off - full_audit:syslog = no - full_audit:success = none - full_audit:failure = none - [vfs_aio_fork] path = $prefix_abs/share vfs objects = aio_fork @@ -1747,7 +1743,11 @@ sub provision($$$$$$$$$) dos filemode = yes strict rename = yes strict sync = yes - vfs objects = acl_xattr fake_acls xattr_tdb streams_depot + vfs objects = acl_xattr fake_acls xattr_tdb streams_depot time_audit full_audit + + full_audit:syslog = no + full_audit:success = none + full_audit:failure = none printing = vlp print command = $bindir_abs/vlp tdbfile=$lockdir/vlp.tdb print %p %s -- 1.8.3.1