svn commit: samba r9457 - in branches/SAMBA_3_0/source/smbd: .

jra at samba.org jra at samba.org
Sun Aug 21 21:12:28 GMT 2005


Author: jra
Date: 2005-08-21 21:12:27 +0000 (Sun, 21 Aug 2005)
New Revision: 9457

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9457

Log:
Attempt to fix bug #3010 by handling END_OF_DIRECTORY_OFFSET
consistently.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/smbd/dir.c


Changeset:
Modified: branches/SAMBA_3_0/source/smbd/dir.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/dir.c	2005-08-21 21:12:24 UTC (rev 9456)
+++ branches/SAMBA_3_0/source/smbd/dir.c	2005-08-21 21:12:27 UTC (rev 9457)
@@ -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);
 		}



More information about the samba-cvs mailing list