From 75efe188dbfd8db993028ef0c5c586d9321cf61f Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 8 Sep 2017 12:19:03 +0200 Subject: [PATCH] s3/smbd: sticky write time offset miscalculation causes broken timestamps The offset calculation for the offset that got passed to fetch_write_time_send() in the enumeration loop was wrong as it passed the offset before smbd_dirptr_lanman2_entry() added required padding. This resulted in broken timestamps in the find response. Bug: https://bugzilla.samba.org/show_bug.cgi?id=13024 --- source3/smbd/smb2_query_directory.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source3/smbd/smb2_query_directory.c b/source3/smbd/smb2_query_directory.c index 3e0abdf770a..430fdca90de 100644 --- a/source3/smbd/smb2_query_directory.c +++ b/source3/smbd/smb2_query_directory.c @@ -501,7 +501,6 @@ static struct tevent_req *smbd_smb2_query_directory_send(TALLOC_CTX *mem_ctx, while (true) { bool got_exact_match = false; int space_remaining = in_output_buffer_length - off; - int cur_off = off; struct file_id file_id; bool stop = false; @@ -556,7 +555,7 @@ static struct tevent_req *smbd_smb2_query_directory_send(TALLOC_CTX *mem_ctx, conn, file_id, info_level, - base_data + cur_off, + base_data + last_entry_off, &stop); if (tevent_req_nomem(subreq, req)) { return tevent_req_post(req, ev); -- 2.13.5