mirror of
https://github.com/samba-team/samba.git
synced 2025-03-01 04:58:35 +03:00
trans2.c: Forced trans2_findfirst to behave as NT does in error returns.
util.c: Applied fix from Branko Cibej <branko.cibej@hermes.si> where StrnCaseCmp tests one character too many. Jeremy. (This used to be commit cb771b2667070cff8d6cf86998a11ba2e4977690)
This commit is contained in:
parent
b88f43dfdb
commit
42e0d9a1f0
@ -953,10 +953,11 @@ int StrnCaseCmp(char *s, char *t, int n)
|
||||
else
|
||||
#endif /* KANJI_WIN95_COMPATIBILITY */
|
||||
{
|
||||
while (n-- && *s && *t && toupper(*s) == toupper(*t))
|
||||
while (n && *s && *t && toupper(*s) == toupper(*t))
|
||||
{
|
||||
s++;
|
||||
t++;
|
||||
n--;
|
||||
}
|
||||
|
||||
/* not run out of chars - strings are different lengths */
|
||||
|
@ -646,29 +646,7 @@ static int call_trans2findfirst(char *inbuf, char *outbuf, int bufsize, int cnum
|
||||
|
||||
dptr_num = dptr_create(cnum,directory, True ,SVAL(inbuf,smb_pid));
|
||||
if (dptr_num < 0)
|
||||
{
|
||||
if(dptr_num == -2)
|
||||
{
|
||||
if((errno == ENOENT) && bad_path)
|
||||
{
|
||||
unix_ERR_class = ERRDOS;
|
||||
unix_ERR_code = ERRbadpath;
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* Ugly - NT specific hack - maybe not needed ? (JRA) */
|
||||
if((errno == ENOTDIR) && (Protocol >= PROTOCOL_NT1) &&
|
||||
(get_remote_arch() == RA_WINNT))
|
||||
{
|
||||
unix_ERR_class = ERRDOS;
|
||||
unix_ERR_code = ERRbaddirectory;
|
||||
}
|
||||
#endif
|
||||
|
||||
return (UNIXERROR(ERRDOS,ERRbadpath));
|
||||
}
|
||||
return(ERROR(ERRDOS,ERRbadpath));
|
||||
}
|
||||
return(ERROR(ERRDOS,ERRbadfile));
|
||||
|
||||
/* convert the formatted masks */
|
||||
{
|
||||
@ -748,6 +726,14 @@ static int call_trans2findfirst(char *inbuf, char *outbuf, int bufsize, int cnum
|
||||
dptr_num = -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* If there are no matching entries we must return ERRDOS/ERRbadfile -
|
||||
* from observation of NT.
|
||||
*/
|
||||
|
||||
if(numentries == 0)
|
||||
return(ERROR(ERRDOS,ERRbadfile));
|
||||
|
||||
/* At this point pdata points to numentries directory entries. */
|
||||
|
||||
/* Set up the return parameter block */
|
||||
|
Loading…
x
Reference in New Issue
Block a user