diff options
author | Jeremy Allison <jra@samba.org> | 2005-03-21 18:10:21 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:56:09 -0500 |
commit | ff107a93cdf4ab75be44097897ecc42ea46580e2 (patch) | |
tree | 7a76abbdee61a3c026c5790d5b700bc54aa56d86 /source3/smbd/dir.c | |
parent | eeefe8cf5e2303863ea63d1487042082cdfc2778 (diff) | |
download | samba-ff107a93cdf4ab75be44097897ecc42ea46580e2.tar.gz samba-ff107a93cdf4ab75be44097897ecc42ea46580e2.tar.xz samba-ff107a93cdf4ab75be44097897ecc42ea46580e2.zip |
r5922: Fix for NASTY NASTY bug #2501. All my fault :-(. Brown paper bag time.
Stops Win98 from looping doing findnext on a singleton directory. More
testing very welcome.
Jeremy.
(This used to be commit e32a58742e618a49934e19b72cd5222c9666cf95)
Diffstat (limited to 'source3/smbd/dir.c')
-rw-r--r-- | source3/smbd/dir.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c index db16b8a6e00..1ec35d839c2 100644 --- a/source3/smbd/dir.c +++ b/source3/smbd/dir.c @@ -595,6 +595,13 @@ const char *dptr_ReadDirName(struct dptr_struct *dptr, long *poffset, SMB_STRUCT BOOL dptr_SearchDir(struct dptr_struct *dptr, const char *name, long *poffset, SMB_STRUCT_STAT *pst) { ZERO_STRUCTP(pst); + + if (!dptr->has_wild && (dptr->dir_hnd->offset == -1)) { + /* This is a singleton directory and we're already at the end. */ + *poffset = -1; + return False; + } + while (SearchDir(dptr->dir_hnd, name, poffset) == True) { if (is_visible_file(dptr->conn, dptr->path, name, pst, True)) { return True; |