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 {