mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
mangle.c: Fixed bug that caused string to run off the end of the mangled map.
server.c: Changed comparison from dname to name2 - seems correct - don't know why
I changed it originally. hmmmmm.
trans2.c: Made lanman2 code more similar to scan_directory(). I should
make the trans2 code call scan_dir as they are so similar.
Jeremy(jallison@whistle.com).
(This used to be commit 3909576849
)
This commit is contained in:
parent
22e4d4e9d4
commit
45f9982930
@ -414,9 +414,9 @@ static void do_fwd_mangled_map(char *s, char *MangledMap)
|
||||
while (*start) {
|
||||
while ((*start) && (*start != '('))
|
||||
start++;
|
||||
start++; /* Skip the ( */
|
||||
if (!*start)
|
||||
continue; /* Always check for the end. */
|
||||
start++; /* Skip the ( */
|
||||
end = start; /* Search for the ' ' or a ')' */
|
||||
DEBUG(5,("Start of first in pair '%s'\n", start));
|
||||
while ((*end) && !((*end == ' ') || (*end == ')')))
|
||||
|
@ -397,7 +397,7 @@ static BOOL scan_directory(char *path, char *name,int cnum,BOOL docache)
|
||||
if (!name_map_mangle(name2,False,SNUM(cnum))) continue;
|
||||
|
||||
if ((mangled && mangled_equal(name,name2))
|
||||
|| fname_equal(name, dname))
|
||||
|| fname_equal(name, name2)) /* name2 here was changed to dname - since 1.9.16p2 - not sure of reason (jra) */
|
||||
{
|
||||
/* we've found the file, change it's name and return */
|
||||
if (docache) DirCacheAdd(path,name,dname,SNUM(cnum));
|
||||
|
@ -329,7 +329,8 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
|
||||
|
||||
strcpy(fname,dname);
|
||||
|
||||
if(mask_match(fname, mask, case_sensitive, True))
|
||||
if(name_map_mangle(fname,False,SNUM(cnum)) &&
|
||||
mask_match(fname, mask, case_sensitive, True))
|
||||
{
|
||||
BOOL isdots = (strequal(fname,"..") || strequal(fname,"."));
|
||||
if (dont_descend && !isdots)
|
||||
@ -341,7 +342,7 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
|
||||
strcpy(pathreal,Connections[cnum].dirpath);
|
||||
if(needslash)
|
||||
strcat(pathreal,"/");
|
||||
strcat(pathreal,fname);
|
||||
strcat(pathreal,dname);
|
||||
if (sys_stat(pathreal,&sbuf) != 0)
|
||||
{
|
||||
DEBUG(5,("get_lanman2_dir_entry:Couldn't stat [%s] (%s)\n",pathreal,strerror(errno)));
|
||||
@ -368,13 +369,9 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
p = pdata;
|
||||
nameptr = p;
|
||||
|
||||
name_map_mangle(fname,False,SNUM(cnum));
|
||||
|
||||
nt_extmode = mode ? mode : NT_FILE_ATTRIBUTE_NORMAL;
|
||||
|
||||
switch (info_level)
|
||||
|
Loading…
Reference in New Issue
Block a user