]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: libsmbclient: Ensure SMBC_readdir_ctx() also updates the readdirplus pointers.
authorJeremy Allison <jra@samba.org>
Mon, 26 Aug 2019 16:54:06 +0000 (09:54 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 3 Sep 2019 16:15:36 +0000 (16:15 +0000)
If we are returning file entries, we
have a duplicate list in dirplus.

Update dirplus_next also so readdir and
readdirplus are kept in sync.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14094

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Böhme <slow@samba.org>
source3/libsmb/libsmb_dir.c

index 886aa6265094e039db0d371b7a36dbce57b2eb81..a3ec9a8ff717fe489a4f8e3c78d1e1b481f6b575 100644 (file)
@@ -1174,6 +1174,17 @@ SMBC_readdir_ctx(SMBCCTX *context,
 
         dir->dir_next = dir->dir_next->next;
 
+       /*
+        * If we are returning file entries, we
+        * have a duplicate list in dirplus.
+        *
+        * Update dirplus_next also so readdir and
+        * readdirplus are kept in sync.
+        */
+       if (dir->dirplus_list != NULL) {
+               dir->dirplus_next = dir->dirplus_next->next;
+       }
+
        TALLOC_FREE(frame);
         return dirp;
 }