diff options
author | Jeremy Allison <jra@samba.org> | 2005-04-01 19:57:22 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:56:26 -0500 |
commit | 065ab9182dc39557b8c26d3d110abe9963ad9568 (patch) | |
tree | 233bd8dd1dc0dc1c1c3f300b7e448df46439b100 /source/smbd | |
parent | 8f6dba2cc3f337e990ef3e4b46718a5c1dca65ab (diff) | |
download | samba-065ab9182dc39557b8c26d3d110abe9963ad9568.tar.gz samba-065ab9182dc39557b8c26d3d110abe9963ad9568.tar.xz samba-065ab9182dc39557b8c26d3d110abe9963ad9568.zip |
r6169: Fix bug #2563. Infinite loop on non-existant file with findnext.
Jeremy
Diffstat (limited to 'source/smbd')
-rw-r--r-- | source/smbd/dir.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/source/smbd/dir.c b/source/smbd/dir.c index 55f15238652..27ec003fb8f 100644 --- a/source/smbd/dir.c +++ b/source/smbd/dir.c @@ -573,8 +573,6 @@ const char *dptr_ReadDirName(struct dptr_struct *dptr, long *poffset, SMB_STRUCT } } - dptr->has_wild = True; - /* In case sensitive mode we don't search - we know if it doesn't exist with a stat we will fail. */ @@ -584,6 +582,7 @@ const char *dptr_ReadDirName(struct dptr_struct *dptr, long *poffset, SMB_STRUCT dptr->dir_hnd->offset = *poffset = -1; return NULL; } else { + dptr->has_wild = True; return dptr_normal_ReadDirName(dptr, poffset, pst); } } @@ -602,7 +601,7 @@ BOOL dptr_SearchDir(struct dptr_struct *dptr, const char *name, long *poffset, S return False; } - while (SearchDir(dptr->dir_hnd, name, poffset) == True) { + if (SearchDir(dptr->dir_hnd, name, poffset)) { if (is_visible_file(dptr->conn, dptr->path, name, pst, True)) { return True; } |