summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/libcli/smb2/getinfo.c4
-rw-r--r--source4/torture/smb2/util.c10
2 files changed, 14 insertions, 0 deletions
diff --git a/source4/libcli/smb2/getinfo.c b/source4/libcli/smb2/getinfo.c
index 4575ae2a40..85411fab92 100644
--- a/source4/libcli/smb2/getinfo.c
+++ b/source4/libcli/smb2/getinfo.c
@@ -91,6 +91,10 @@ NTSTATUS smb2_getinfo(struct smb2_tree *tree, TALLOC_CTX *mem_ctx,
*/
uint16_t smb2_getinfo_map_level(uint16_t level, uint8_t class)
{
+ if (class == SMB2_GETINFO_FILE &&
+ level == RAW_FILEINFO_SEC_DESC) {
+ return SMB2_GETINFO_SECURITY;
+ }
if ((level & 0xFF) == class) {
return level;
} else if (level > 1000) {
diff --git a/source4/torture/smb2/util.c b/source4/torture/smb2/util.c
index 776714da9e..7afce0137f 100644
--- a/source4/torture/smb2/util.c
+++ b/source4/torture/smb2/util.c
@@ -282,6 +282,16 @@ void torture_smb2_all_info(struct smb2_tree *tree, struct smb2_handle handle)
}
}
+ /* the security descriptor */
+ io.query_secdesc.level = RAW_FILEINFO_SEC_DESC;
+ io.query_secdesc.secinfo_flags =
+ SECINFO_OWNER|SECINFO_GROUP|
+ SECINFO_DACL;
+ status = smb2_getinfo_file(tree, tmp_ctx, &io);
+ if (NT_STATUS_IS_OK(status)) {
+ NDR_PRINT_DEBUG(security_descriptor, io.query_secdesc.out.sd);
+ }
+
talloc_free(tmp_ctx);
}