summaryrefslogtreecommitdiff
path: root/source3/smbd/filename.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2004-03-05 01:37:25 +0000
committerJeremy Allison <jra@samba.org>2004-03-05 01:37:25 +0000
commit09325be439d7c976aadd2db2c2905f97b5af9ba6 (patch)
tree541abbf2412dd64943cb2e596d93603b26c9a3f1 /source3/smbd/filename.c
parent26c41cb6d71f229a8dd2c7439c85de99f5f1e050 (diff)
downloadsamba-09325be439d7c976aadd2db2c2905f97b5af9ba6.tar.gz
samba-09325be439d7c976aadd2db2c2905f97b5af9ba6.tar.bz2
samba-09325be439d7c976aadd2db2c2905f97b5af9ba6.zip
all_string_sub() is broken as it doesn't handle mb chars correctly (and
so breaks when substitution '/' and '\'). It's used by unix_clean_name(), which is used by reduce_name, which is used by check_name() (phew!). Now that we know all filenames passed to check_name() are in a "good" format (no double slashes, all '\\' chars translated to '/' etc.) due to the new check_path_syntax() we can avoid calling reduce_name unless widelinks are denied. After this check-in I can fix all_string_sub() to handle mb chars correctly as it won't be in the direct path in the main path handling code. Jeremy. (This used to be commit bce0678331aa4746181389e0f91f11fb2a6dadcb)
Diffstat (limited to 'source3/smbd/filename.c')
-rw-r--r--source3/smbd/filename.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c
index a71e8a806c..8300674d61 100644
--- a/source3/smbd/filename.c
+++ b/source3/smbd/filename.c
@@ -387,7 +387,7 @@ BOOL unix_convert(pstring name,connection_struct *conn,char *saved_last_componen
BOOL check_name(pstring name,connection_struct *conn)
{
- BOOL ret;
+ BOOL ret = True;
errno = 0;
@@ -398,7 +398,9 @@ BOOL check_name(pstring name,connection_struct *conn)
}
}
- ret = reduce_name(conn,name,conn->connectpath,lp_widelinks(SNUM(conn)));
+ if (!lp_widelinks(SNUM(conn))) {
+ ret = reduce_name(conn,name,conn->connectpath);
+ }
/* Check if we are allowing users to follow symlinks */
/* Patch from David Clerc <David.Clerc@cui.unige.ch>