[SCM] Samba Shared Repository - branch v3-3-test updated -
release-3-2-0pre2-5226-g5a5dcd1
Volker Lendecke
vlendec at samba.org
Mon Apr 20 12:06:49 GMT 2009
The branch, v3-3-test has been updated
via 5a5dcd125fe236ddd93a6e56ae361fc84e306185 (commit)
from bfd1d245bd27fe5c14d786702da07e5f88fb03f5 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test
- Log -----------------------------------------------------------------
commit 5a5dcd125fe236ddd93a6e56ae361fc84e306185
Author: Volker Lendecke <vl at samba.org>
Date: Wed Apr 15 13:01:09 2009 +0200
Do not use the file system GET_REAL_FILENAME for mangled names
-----------------------------------------------------------------------
Summary of changes:
source/smbd/filename.c | 30 +++++++++++++++++++++++-------
1 files changed, 23 insertions(+), 7 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source/smbd/filename.c b/source/smbd/filename.c
index 003cb0f..031668f 100644
--- a/source/smbd/filename.c
+++ b/source/smbd/filename.c
@@ -33,6 +33,9 @@ static NTSTATUS build_stream_path(TALLOC_CTX *mem_ctx,
const char *streamname,
SMB_STRUCT_STAT *pst,
char **path);
+static int get_real_filename_mangled(connection_struct *conn, const char *path,
+ const char *name, TALLOC_CTX *mem_ctx,
+ char **found_name);
/****************************************************************************
Mangle the 2nd name and check if it is then equal to the first name.
@@ -447,7 +450,7 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
*/
if (name_has_wildcard ||
- (SMB_VFS_GET_REAL_FILENAME(
+ (get_real_filename_mangled(
conn, dirpath, start,
talloc_tos(), &found_name) == -1)) {
char *unmangled;
@@ -789,15 +792,12 @@ static bool fname_equal(const char *name1, const char *name2,
If the name looks like a mangled name then try via the mangling functions
****************************************************************************/
-int get_real_filename(connection_struct *conn, const char *path,
- const char *name, TALLOC_CTX *mem_ctx,
- char **found_name)
+static int get_real_filename_mangled(connection_struct *conn, const char *path,
+ const char *name, TALLOC_CTX *mem_ctx,
+ char **found_name)
{
- struct smb_Dir *cur_dir;
- const char *dname;
bool mangled;
char *unmangled_name = NULL;
- long curpos;
mangled = mangle_is_mangled(name, conn->params);
@@ -838,8 +838,24 @@ int get_real_filename(connection_struct *conn, const char *path,
/* Name is now unmangled. */
name = unmangled_name;
}
+ return get_real_filename(conn, path, name, mem_ctx,
+ found_name);
}
+ return SMB_VFS_GET_REAL_FILENAME(conn, path, name, mem_ctx,
+ found_name);
+}
+
+int get_real_filename(connection_struct *conn, const char *path,
+ const char *name, TALLOC_CTX *mem_ctx,
+ char **found_name)
+{
+ struct smb_Dir *cur_dir;
+ const char *dname;
+ bool mangled;
+ char *unmangled_name = NULL;
+ long curpos;
+
/* open the directory */
if (!(cur_dir = OpenDir(talloc_tos(), conn, path, NULL, 0))) {
DEBUG(3,("scan dir didn't open dir [%s]\n",path));
--
Samba Shared Repository
More information about the samba-cvs
mailing list