diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-07-18 06:48:28 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-07-18 06:48:28 +0000 |
commit | 14f3c7507020d77bc92ae00614b6af8f24784925 (patch) | |
tree | 6faee5a2a3b52acaccb837530d5a47c04b13819f | |
parent | fc7c1101fb2a568f6489d3e4b58c050cd2f12cb9 (diff) | |
download | samba-14f3c7507020d77bc92ae00614b6af8f24784925.tar.gz samba-14f3c7507020d77bc92ae00614b6af8f24784925.tar.bz2 samba-14f3c7507020d77bc92ae00614b6af8f24784925.zip |
this fixes a bug where Samba would under some circumstances return
incomplete directory listings. The problem was the exact_match
optimisation that short circuited directory listings on exact
matches. This optimisation doesn't work when the unix filename
contains Microsoft wildcard characters.
(This used to be commit 84cee2c3fcc34fe6356e842821a5f0a361477637)
-rw-r--r-- | source3/smbd/trans2.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index bdcd04443e..398646a6cd 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -326,7 +326,13 @@ static BOOL exact_match(char *str,char *mask, BOOL case_sig) return False; if (case_sig) return strcmp(str,mask)==0; - return StrCaseCmp(str,mask) == 0; + if (StrCaseCmp(str,mask) != 0) { + return False; + } + if (ms_has_wild(str)) { + return False; + } + return True; } /**************************************************************************** |