1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-13 13:18:06 +03:00

r20720: Fix the chkpath problem, still looking at findfirst.

Jeremy.
(This used to be commit c5be0082ef)
This commit is contained in:
Jeremy Allison 2007-01-13 01:07:39 +00:00 committed by Gerald (Jerry) Carter
parent db0ad252a0
commit 1a40a6e08a
2 changed files with 13 additions and 1 deletions

View File

@ -147,7 +147,12 @@ NTSTATUS unix_convert(connection_struct *conn,
if (name[0] == '.' && (name[1] == '/' || name[1] == '\0')) {
/* Start of pathname can't be "." only. */
return NT_STATUS_OBJECT_NAME_INVALID;
if (name[1] == '\0' || name[2] == '\0') {
return NT_STATUS_OBJECT_NAME_INVALID;
} else {
/* Longer pathname starts with ./ */
return NT_STATUS_OBJECT_PATH_NOT_FOUND;
}
}
/*

View File

@ -632,6 +632,13 @@ int reply_chkpth(connection_struct *conn, char *inbuf,char *outbuf, int dum_size
status = unix_convert(conn, name, False, NULL, &sbuf);
if (!NT_STATUS_IS_OK(status)) {
END_PROFILE(SMBchkpth);
/* Strange DOS error code semantics only for chkpth... */
if (!(SVAL(inbuf,smb_flg2) & FLAGS2_32_BIT_ERROR_CODES)) {
if (NT_STATUS_EQUAL(NT_STATUS_OBJECT_NAME_INVALID,status)) {
/* We need to map to ERRbadpath */
status = NT_STATUS_OBJECT_PATH_NOT_FOUND;
}
}
return ERROR_NT(status);
}