diff options
author | Jeremy Allison <jra@samba.org> | 2019-08-26 10:02:47 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2019-09-03 16:15:36 +0000 |
commit | 3d82b7d11cd7b78adc6b3642e64e3a8f251de869 (patch) | |
tree | 9634c5c8e4b92b32c9af300e0c288cb620be8d8b /source3/libsmb | |
parent | 4bca8e097f5a909c628daa4dbfa932ddc1725ebc (diff) | |
download | samba-3d82b7d11cd7b78adc6b3642e64e3a8f251de869.tar.gz |
s3: libsmbclient: Ensure SMBC_readdirplus_ctx() also updates the readdir pointers.
If we are returning file entries, we
have a duplicate list in dir_list.
Update dir_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>
Diffstat (limited to 'source3/libsmb')
-rw-r--r-- | source3/libsmb/libsmb_dir.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/source3/libsmb/libsmb_dir.c b/source3/libsmb/libsmb_dir.c index a3ec9a8ff71..2f2117e8131 100644 --- a/source3/libsmb/libsmb_dir.c +++ b/source3/libsmb/libsmb_dir.c @@ -1231,6 +1231,17 @@ SMBC_readdirplus_ctx(SMBCCTX *context, } dir->dirplus_next = dir->dirplus_next->next; + /* + * If we are returning file entries, we + * have a duplicate list in dir_list + * + * Update dir_next also so readdir and + * readdirplus are kept in sync. + */ + if (dir->dir_list) { + dir->dir_next = dir->dir_next->next; + } + TALLOC_FREE(frame); return smb_finfo; } |