[SCM] Samba Shared Repository - branch v3-4-test updated
Karolin Seeger
kseeger at samba.org
Fri Oct 9 00:41:19 MDT 2009
The branch, v3-4-test has been updated
via 37f42ad... Correct fix for bug 6781 - Cannot rename subfolders in Explorer view with recent versions of Samba. Without this fix, renaming a directory ./a to ./b, whilst a directory ./aa was already open would fail. Simplifies logic of earlier code. Jeremy.
from 9f7d155... Fix bug 6769 - symlink unlink does nothing. Jeremy.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-4-test
- Log -----------------------------------------------------------------
commit 37f42ad6a1fff1e43bfd6dcaa8244b738ea37363
Author: Jeremy Allison <jra at samba.org>
Date: Wed Oct 7 15:46:57 2009 -0700
Correct fix for bug 6781 - Cannot rename subfolders in Explorer view with recent versions of Samba. Without this fix, renaming a directory ./a to ./b, whilst a directory ./aa was already open would fail. Simplifies logic of earlier code. Jeremy.
-----------------------------------------------------------------------
Summary of changes:
source3/smbd/files.c | 32 ++++++++++++--------------------
1 files changed, 12 insertions(+), 20 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/smbd/files.c b/source3/smbd/files.c
index 54c4c73..6f82686 100644
--- a/source3/smbd/files.c
+++ b/source3/smbd/files.c
@@ -385,13 +385,12 @@ bool file_find_subpath(files_struct *dir_fsp)
{
files_struct *fsp;
size_t dlen;
- bool ret = false;
char *d_fullname = talloc_asprintf(talloc_tos(),
"%s/%s",
dir_fsp->conn->connectpath,
dir_fsp->fsp_name);
if (!d_fullname) {
- goto out;
+ return false;
}
dlen = strlen(d_fullname);
@@ -408,28 +407,21 @@ bool file_find_subpath(files_struct *dir_fsp)
fsp->conn->connectpath,
fsp->fsp_name);
- if (strnequal(d_fullname, d1_fullname, dlen)) {
- int d1_len = strlen(d1_fullname);
-
- /*
- * If the open file is a second file handle to the
- * same name or is a stream on the original file, then
- * don't return true.
- */
- if (d1_len == dlen || d1_fullname[dlen] == ':') {
- TALLOC_FREE(d1_fullname);
- continue;
- }
-
+ /*
+ * If the open file has a path that is a longer
+ * component, then it's a subpath.
+ */
+ if (strnequal(d_fullname, d1_fullname, dlen) &&
+ (d1_fullname[dlen] == '/')) {
TALLOC_FREE(d1_fullname);
- ret = true;
- goto out;
+ TALLOC_FREE(d_fullname);
+ return true;
}
TALLOC_FREE(d1_fullname);
- }
- out:
+ }
+
TALLOC_FREE(d_fullname);
- return ret;
+ return false;
}
/****************************************************************************
--
Samba Shared Repository
More information about the samba-cvs
mailing list