mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
r21769: Attempt to fix bug #4384 in old search code.
We were accessing a pathname that hadn't gone
through unix_convert ! That's a big no-no...
Jeremy.
(This used to be commit 33a67fd39e
)
This commit is contained in:
parent
540911001d
commit
12c617af08
@ -967,16 +967,13 @@ int reply_search(connection_struct *conn, char *inbuf,char *outbuf, int dum_size
|
||||
|
||||
if (status_len == 0) {
|
||||
SMB_STRUCT_STAT sbuf;
|
||||
pstring dir2;
|
||||
|
||||
pstrcpy(directory,path);
|
||||
pstrcpy(dir2,path);
|
||||
nt_status = unix_convert(conn, directory, True, NULL, &sbuf);
|
||||
if (!NT_STATUS_IS_OK(nt_status)) {
|
||||
END_PROFILE(SMBsearch);
|
||||
return ERROR_NT(nt_status);
|
||||
}
|
||||
unix_format(dir2);
|
||||
|
||||
nt_status = check_name(conn, directory);
|
||||
if (!NT_STATUS_IS_OK(nt_status)) {
|
||||
@ -984,23 +981,16 @@ int reply_search(connection_struct *conn, char *inbuf,char *outbuf, int dum_size
|
||||
return ERROR_NT(nt_status);
|
||||
}
|
||||
|
||||
p = strrchr_m(dir2,'/');
|
||||
if (p == NULL) {
|
||||
pstrcpy(mask,dir2);
|
||||
*dir2 = 0;
|
||||
p = strrchr_m(directory,'/');
|
||||
if (!p) {
|
||||
pstrcpy(mask,directory);
|
||||
pstrcpy(directory,".");
|
||||
} else {
|
||||
*p = 0;
|
||||
pstrcpy(mask,p+1);
|
||||
}
|
||||
|
||||
p = strrchr_m(directory,'/');
|
||||
if (!p) {
|
||||
*directory = 0;
|
||||
} else {
|
||||
*p = 0;
|
||||
}
|
||||
|
||||
if (strlen(directory) == 0) {
|
||||
if (*directory == '\0') {
|
||||
pstrcpy(directory,".");
|
||||
}
|
||||
memset((char *)status,'\0',21);
|
||||
|
Loading…
Reference in New Issue
Block a user