Author: jra
Date: 2007-01-11 00:35:06 +0000 (Thu, 11 Jan 2007)
New Revision: 20672

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20672

Log:
Start working on the wildcard cases - put back this
exception case.
Jeremy.

Modified:
   branches/SAMBA_3_0_24/source/smbd/filename.c


Changeset:
Modified: branches/SAMBA_3_0_24/source/smbd/filename.c
===================================================================
--- branches/SAMBA_3_0_24/source/smbd/filename.c        2007-01-11 00:10:09 UTC 
(rev 20671)
+++ branches/SAMBA_3_0_24/source/smbd/filename.c        2007-01-11 00:35:06 UTC 
(rev 20672)
@@ -260,6 +260,25 @@
 
                if (ISDOT(start)) {
                        if (end) {
+                               if (allow_wcard_last_component) {
+                                       /* We're terminating here so we
+                                        * can be a little slower and get
+                                        * the error code right. Windows
+                                        * treats the last part of the pathname
+                                        * separately I think, so if the last
+                                        * component is a wildcard then we treat
+                                        * this ./ as "end of component" */
+
+                                       const char *p = strchr(end+1, '/');
+
+                                       if (!p && ms_has_wild(end+1)) {
+                                               /* Error code at the end of a 
pathname. */
+                                               return 
NT_STATUS_OBJECT_NAME_INVALID;
+                                       } else {
+                                               /* Error code within a 
pathname. */
+                                               return 
NT_STATUS_OBJECT_PATH_NOT_FOUND;
+                                       }
+                               }
                                /* Error code within a pathname. */
                                return NT_STATUS_OBJECT_PATH_NOT_FOUND;
                        } else {

Reply via email to