diff options
-rw-r--r-- | source3/smbd/dir.c | 5 | ||||
-rw-r--r-- | source3/smbd/trans2.c | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c index b9b3b88269..6a8cde1883 100644 --- a/source3/smbd/dir.c +++ b/source3/smbd/dir.c @@ -590,6 +590,11 @@ BOOL get_dir_entry(connection_struct *conn,char *mask,int dirtype,char *fname, if (!conn->dirptr) return(False); + + if (strequal(mask, "????????.???")) + pstrcpy(mask, "*"); + + while (!found) { diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index a45c2183ce..2210b38d74 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -375,8 +375,14 @@ static BOOL get_lanman2_dir_entry(connection_struct *conn, pstrcpy(fname,dname); - if(!(got_match = *got_exact_match = exact_match(fname, mask, case_sensitive))) - got_match = mask_match(fname, mask, case_sensitive); + if(!(got_match = *got_exact_match = exact_match(fname, mask, case_sensitive))) { + if (!strcmp(mask, "*.*")) { + got_match = True; + } + else { + got_match = mask_match(fname, mask, case_sensitive); + } + } if(!got_match && !is_8_3(fname, False)) { |