diff options
-rw-r--r-- | source4/libcli/smb2/getinfo.c | 4 | ||||
-rw-r--r-- | source4/torture/smb2/util.c | 10 |
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); } |