From 7a6532fdf7df7e75d4821ffc10c77af427bf6658 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 7116796..59d5911 100644 --- a/source3/modules/vfs_time_audit.c +++ b/source3/modules/vfs_time_audit.c @@ -1946,13 +1946,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); @@ -1966,13 +1965,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 3cb9f63f666dd7e29faae894ac23440bbefb5bd1 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 39a8f49..9c41b8c 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -700,14 +700,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 @@ -1641,7 +1637,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