s3: smbd: Fix delete-on-close after smb2_find
authorRalph Wuerthner <ralph.wuerthner@de.ibm.com>
Fri, 3 Nov 2017 22:33:28 +0000 (22:33 +0000)
committerVolker Lendecke <vl@samba.org>
Sun, 5 Nov 2017 07:30:19 +0000 (08:30 +0100)
commitc9e996d78df3ce326a5c13f8f4f1426918769ceb
treeb14aa02b7c74a3b72c58f8c1d6eca771fb36c478
parent3bb854ce90f86aa1b7e62ed824ce2f9d385cd5d4
s3: smbd: Fix delete-on-close after smb2_find

Both dptr_create() and can_delete_directory_fsp() are calling OpenDir_fsp()
to get a directory handle. This causes an issue when delete-on-close is
set after smb2_find because both directory handle instances share the same
underlying file descriptor. In addition the SMB_ASSERT() in destructor
smb_Dir_destructor() gets triggered.

To avoid this use OpenDir() instead of OpenDir_fsp().

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

Signed-off-by: Ralph Wuerthner <ralph.wuerthner@de.ibm.com>
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
source3/smbd/dir.c