1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

smbd: Return reparse tag as of MS-FSCC 2.4.6

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
Volker Lendecke 2024-05-08 16:03:29 +02:00 committed by Jeremy Allison
parent d884c2fb0d
commit ee65357763
2 changed files with 18 additions and 5 deletions

View File

@ -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_reparse_tag

View File

@ -48,6 +48,7 @@
#include "source3/lib/substitute.h"
#include "source3/lib/adouble.h"
#include "source3/smbd/dir.h"
#include "source3/modules/util_reparse.h"
#define DIR_ENTRY_SAFETY_MARGIN 4096
@ -3676,14 +3677,27 @@ NTSTATUS smbd_do_qfilepathinfo(connection_struct *conn,
*fixed_portion = 56;
break;
case SMB_FILE_ATTRIBUTE_TAG_INFORMATION:
case SMB_FILE_ATTRIBUTE_TAG_INFORMATION: {
uint32_t tag = 0;
uint8_t *data = NULL;
uint32_t datalen;
DBG_DEBUG("SMB_FILE_ATTRIBUTE_TAG_INFORMATION\n");
SIVAL(pdata,0,mode);
SIVAL(pdata,4,0);
(void)fsctl_get_reparse_point(fsp,
talloc_tos(),
&tag,
&data,
UINT32_MAX,
&datalen);
TALLOC_FREE(data);
SIVAL(pdata, 0, mode);
SIVAL(pdata, 4, tag);
data_size = 8;
*fixed_portion = 8;
break;
}
/*
* SMB2 UNIX Extensions.
*/