From: Volker Lendecke Date: Fri, 2 Dec 2022 14:02:18 +0000 (+0100) Subject: smbd: Return FILE_ATTRIBUTE_REPARSE_POINT from "user.DOSATTRIB" X-Git-Tag: tdb-1.4.11~875 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2defbc994de3c0ce763c5272bdf23b6054e5af95;p=thirdparty%2Fsamba.git smbd: Return FILE_ATTRIBUTE_REPARSE_POINT from "user.DOSATTRIB" Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/source3/smbd/dosmode.c b/source3/smbd/dosmode.c index 674a13076e1..fac226459ce 100644 --- a/source3/smbd/dosmode.c +++ b/source3/smbd/dosmode.c @@ -355,8 +355,16 @@ NTSTATUS parse_dos_attribute_blob(struct smb_filename *smb_fname, dosattr |= FILE_ATTRIBUTE_DIRECTORY; } - /* FILE_ATTRIBUTE_SPARSE is valid on get but not on set. */ - *pattr |= (uint32_t)(dosattr & (SAMBA_ATTRIBUTES_MASK|FILE_ATTRIBUTE_SPARSE)); + /* + * _SPARSE and _REPARSE_POINT are valid on get but not on + * set. Both are created via special fcntls. + */ + + dosattr &= (SAMBA_ATTRIBUTES_MASK| + FILE_ATTRIBUTE_SPARSE| + FILE_ATTRIBUTE_REPARSE_POINT); + + *pattr |= dosattr; dos_mode_debug_print(__func__, *pattr);