From: Volker Lendecke Date: Mon, 2 Jan 2023 15:35:16 +0000 (+0100) Subject: smbd: list reparse tag in QUERY_DIRECTORY X-Git-Tag: tdb-1.4.11~474 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c005de07aee30307c9d584130ec825bd7097961b;p=thirdparty%2Fsamba.git smbd: list reparse tag in QUERY_DIRECTORY Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Tue Jun 4 17:39:21 UTC 2024 on atb-devel-224 --- diff --git a/selftest/knownfail.d/reparse b/selftest/knownfail.d/reparse index 0e6654b2084..11d094aa5c6 100644 --- a/selftest/knownfail.d/reparse +++ b/selftest/knownfail.d/reparse @@ -1,3 +1,2 @@ ^samba.tests.reparsepoints.samba.tests.reparsepoints.ReparsePoints.test_create_reparse_directory ^samba.tests.reparsepoints.samba.tests.reparsepoints.ReparsePoints.test_create_reparse_nonempty_directory -^samba.tests.reparsepoints.samba.tests.reparsepoints.ReparsePoints.test_query_dir_reparse diff --git a/source3/smbd/smb2_trans2.c b/source3/smbd/smb2_trans2.c index 3c44a97d74c..65940295248 100644 --- a/source3/smbd/smb2_trans2.c +++ b/source3/smbd/smb2_trans2.c @@ -1064,11 +1064,15 @@ static bool smbd_dirptr_lanman2_match_fn(TALLOC_CTX *ctx, static uint32_t get_dirent_ea_size(uint32_t mode, files_struct *fsp) { - if (!(mode & FILE_ATTRIBUTE_REPARSE_POINT)) { - unsigned ea_size = estimate_ea_size(fsp); - return ea_size; + uint32_t ea_size = IO_REPARSE_TAG_DFS; + + if (mode & FILE_ATTRIBUTE_REPARSE_POINT) { + (void)fsctl_get_reparse_tag(fsp, &ea_size); + } else { + ea_size = estimate_ea_size(fsp); } - return IO_REPARSE_TAG_DFS; + + return ea_size; } static NTSTATUS smbd_marshall_dir_entry(TALLOC_CTX *ctx,