goto fail;
}
- /*
- * stat the name - if it exists then we are all done!
- */
+ if (!name_has_wildcard) {
+ /*
+ * stat the name - if it exists then we are all done!
+ */
- if (posix_pathnames) {
- ret = SMB_VFS_LSTAT(conn,name,&st);
- } else {
- ret = SMB_VFS_STAT(conn,name,&st);
- }
+ if (posix_pathnames) {
+ ret = SMB_VFS_LSTAT(conn,name,&st);
+ } else {
+ ret = SMB_VFS_STAT(conn,name,&st);
+ }
- if (ret == 0) {
- /* Ensure we catch all names with in "/."
- this is disallowed under Windows. */
- const char *p = strstr(name, "/."); /* mb safe. */
- if (p) {
- if (p[2] == '/') {
- /* Error code within a pathname. */
- result = NT_STATUS_OBJECT_PATH_NOT_FOUND;
- goto fail;
- } else if (p[2] == '\0') {
- /* Error code at the end of a pathname. */
- result = NT_STATUS_OBJECT_NAME_INVALID;
- goto fail;
+ if (ret == 0) {
+ /* Ensure we catch all names with in "/."
+ this is disallowed under Windows. */
+ const char *p = strstr(name, "/."); /* mb safe. */
+ if (p) {
+ if (p[2] == '/') {
+ /* Error code within a pathname. */
+ result = NT_STATUS_OBJECT_PATH_NOT_FOUND;
+ goto fail;
+ } else if (p[2] == '\0') {
+ /* Error code at the end of a pathname. */
+ result = NT_STATUS_OBJECT_NAME_INVALID;
+ goto fail;
+ }
}
+ stat_cache_add(orig_path, name, conn->case_sensitive);
+ DEBUG(5,("conversion finished %s -> %s\n",orig_path, name));
+ *pst = st;
+ goto done;
}
- stat_cache_add(orig_path, name, conn->case_sensitive);
- DEBUG(5,("conversion finished %s -> %s\n",orig_path, name));
- *pst = st;
- goto done;
}
DEBUG(5,("unix_convert begin: name = %s, dirpath = %s, start = %s\n",