The Samba-Bugzilla – Attachment 9204 Details for
Bug 10137
shadow_copy2 does not display previous versions correctly over SMB2.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
git-am fix that went into master.
0001-s3-smb2_find-Return-that-timestamps-do-not-exist-as-.patch (text/plain), 3.22 KB, created by
Jeremy Allison
on 2013-09-11 22:48:45 UTC
(
hide
)
Description:
git-am fix that went into master.
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2013-09-11 22:48:45 UTC
Size:
3.22 KB
patch
obsolete
>From 188851595cc5cc85360cea5859cfffc67d0f20fd Mon Sep 17 00:00:00 2001 >From: Christof Schmitt <christof.schmitt@us.ibm.com> >Date: Thu, 29 Aug 2013 19:36:00 +0200 >Subject: [PATCH] s3:smb2_find: Return that timestamps do not exist as > directories > >When a Windows client receives a large directory listing while >querying snapshots, it sends a find request asking for the >timestamp as a directory. A Windows server returns NO_SUCH_FILE, >so make sure Samba returns the same. Otherwise the client will >get confused and display timestamps in the 'previous versions' dialog. > >Signed-off-by: Christof Schmitt <christof.schmitt@us.ibm.com> >Reviewed-by: Volker Lendecke <vl@samba.org> >Reviewed-by: Jeremy Allison <jra@samba.org> > >Autobuild-User(master): Jeremy Allison <jra@samba.org> >Autobuild-Date(master): Tue Sep 10 22:38:51 CEST 2013 on sn-devel-104 > >(cherry picked from commit c8c0632c871e838fc4465b2a69b4e059e9a126c0) >--- > source3/include/smb.h | 3 +++ > source3/modules/vfs_shadow_copy2.c | 3 --- > source3/smbd/smb2_find.c | 13 +++++++++++++ > 3 files changed, 16 insertions(+), 3 deletions(-) > >diff --git a/source3/include/smb.h b/source3/include/smb.h >index 9dd8c58..cfc12a7 100644 >--- a/source3/include/smb.h >+++ b/source3/include/smb.h >@@ -567,6 +567,9 @@ Offset Data length. > #define NOTIFY_ACTION_REMOVED_STREAM 7 > #define NOTIFY_ACTION_MODIFIED_STREAM 8 > >+/* timestamp format used in "previous versions" */ >+#define GMT_NAME_LEN 24 /* length of a @GMT- name */ >+#define GMT_FORMAT "@GMT-%Y.%m.%d-%H.%M.%S" > > /* where to find the base of the SMB packet proper */ > #define smb_base(buf) (((const char *)(buf))+4) >diff --git a/source3/modules/vfs_shadow_copy2.c b/source3/modules/vfs_shadow_copy2.c >index 60f9628..aa7e50f 100644 >--- a/source3/modules/vfs_shadow_copy2.c >+++ b/source3/modules/vfs_shadow_copy2.c >@@ -107,9 +107,6 @@ > #include <ccan/hash/hash.h> > #include "util_tdb.h" > >-#define GMT_NAME_LEN 24 /* length of a @GMT- name */ >-#define GMT_FORMAT "@GMT-%Y.%m.%d-%H.%M.%S" >- > static bool shadow_copy2_find_slashes(TALLOC_CTX *mem_ctx, const char *str, > size_t **poffsets, > unsigned *pnum_offsets) >diff --git a/source3/smbd/smb2_find.c b/source3/smbd/smb2_find.c >index c2c0559..c39a35d 100644 >--- a/source3/smbd/smb2_find.c >+++ b/source3/smbd/smb2_find.c >@@ -224,6 +224,8 @@ static struct tevent_req *smbd_smb2_find_send(TALLOC_CTX *mem_ctx, > uint32_t dirtype = FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_DIRECTORY; > bool dont_descend = false; > bool ask_sharemode = true; >+ struct tm tm; >+ char *p; > > req = tevent_req_create(mem_ctx, &state, > struct smbd_smb2_find_state); >@@ -259,6 +261,17 @@ static struct tevent_req *smbd_smb2_find_send(TALLOC_CTX *mem_ctx, > return tevent_req_post(req, ev); > } > >+ p = strptime(in_file_name, GMT_FORMAT, &tm); >+ if ((p != NULL) && (*p =='\0')) { >+ /* >+ * Bogus find that asks for a shadow copy timestamp as a >+ * directory. The correct response is that it does not exist as >+ * a directory. >+ */ >+ tevent_req_nterror(req, NT_STATUS_NO_SUCH_FILE); >+ return tevent_req_post(req, ev); >+ } >+ > if (in_output_buffer_length > smb2req->sconn->smb2.max_trans) { > DEBUG(2,("smbd_smb2_find_send: " > "client ignored max trans:%s: 0x%08X: 0x%08X\n", >-- >1.8.4 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
vl
:
review+
Actions:
View
Attachments on
bug 10137
: 9204