Author: jra Date: 2005-08-21 21:12:24 +0000 (Sun, 21 Aug 2005) New Revision: 9456
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9456 Log: Attempt to fix bug #3010 by handling END_OF_DIRECTORY_OFFSET consistently. Jeremy. Modified: trunk/source/smbd/dir.c Changeset: Modified: trunk/source/smbd/dir.c =================================================================== --- trunk/source/smbd/dir.c 2005-08-21 20:01:10 UTC (rev 9455) +++ trunk/source/smbd/dir.c 2005-08-21 21:12:24 UTC (rev 9456) @@ -1100,6 +1100,9 @@ } dirp->file_number++; return n; + } else if (*poffset == END_OF_DIRECTORY_OFFSET) { + *poffset = dirp->offset = END_OF_DIRECTORY_OFFSET; + return NULL; } else { /* A real offset, seek to it. */ SeekDir(dirp, *poffset); @@ -1122,7 +1125,7 @@ dirp->file_number++; return e->name; } - dirp->offset = END_OF_DIRECTORY_OFFSET; + *poffset = dirp->offset = END_OF_DIRECTORY_OFFSET; return NULL; } @@ -1147,6 +1150,8 @@ if (offset != dirp->offset) { if (offset == START_OF_DIRECTORY_OFFSET || offset == DOT_DOT_DIRECTORY_OFFSET) { RewindDir(dirp, &offset); + } else if (offset == END_OF_DIRECTORY_OFFSET) { + ; /* Don't seek in this case. */ } else { SMB_VFS_SEEKDIR(dirp->conn, dirp->dir, offset); }
