summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/dir.c5
-rw-r--r--source3/smbd/trans2.c10
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)) {