[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Wed Apr 28 15:14:10 MDT 2010
The branch, master has been updated
via ac09506... Connect set security descriptor into SMB2 code.
from 37e9019... s4-smbtorture: when comparing PrinterData from DsSpooler and PrinterInfo also query some existing values.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit ac09506d36ea3018f888775058901498ab6aa370
Author: Jeremy Allison <jra at samba.org>
Date: Wed Apr 28 14:13:22 2010 -0700
Connect set security descriptor into SMB2 code.
Jeremy.
-----------------------------------------------------------------------
Summary of changes:
source3/include/proto.h | 2 ++
source3/smbd/nttrans.c | 4 ++--
source3/smbd/smb2_setinfo.c | 25 +++++++++++++++++++------
3 files changed, 23 insertions(+), 8 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/include/proto.h b/source3/include/proto.h
index f5e9ec4..1eaa008 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -6613,6 +6613,8 @@ void send_nt_replies(connection_struct *conn,
char *params, int paramsize,
char *pdata, int datasize);
void reply_ntcreate_and_X(struct smb_request *req);
+NTSTATUS set_sd(files_struct *fsp, uint8_t *data, uint32_t sd_len,
+ uint32_t security_info_sent);
struct ea_list *read_nttrans_ea_list(TALLOC_CTX *ctx, const char *pdata, size_t data_size);
void reply_ntcancel(struct smb_request *req);
void reply_ntrename(struct smb_request *req);
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
index 3ce196d..b594b7e 100644
--- a/source3/smbd/nttrans.c
+++ b/source3/smbd/nttrans.c
@@ -828,8 +828,8 @@ static void do_nt_transact_create_pipe(connection_struct *conn,
Internal fn to set security descriptors.
****************************************************************************/
-static NTSTATUS set_sd(files_struct *fsp, uint8 *data, uint32 sd_len,
- uint32 security_info_sent)
+NTSTATUS set_sd(files_struct *fsp, uint8_t *data, uint32_t sd_len,
+ uint32_t security_info_sent)
{
SEC_DESC *psd = NULL;
NTSTATUS status;
diff --git a/source3/smbd/smb2_setinfo.c b/source3/smbd/smb2_setinfo.c
index f6dbf78..410d9f7 100644
--- a/source3/smbd/smb2_setinfo.c
+++ b/source3/smbd/smb2_setinfo.c
@@ -161,11 +161,12 @@ static struct tevent_req *smbd_smb2_setinfo_send(TALLOC_CTX *mem_ctx,
uint32_t in_additional_information,
uint64_t in_file_id_volatile)
{
- struct tevent_req *req;
- struct smbd_smb2_setinfo_state *state;
- struct smb_request *smbreq;
+ struct tevent_req *req = NULL;
+ struct smbd_smb2_setinfo_state *state = NULL;
+ struct smb_request *smbreq = NULL;
connection_struct *conn = smb2req->tcon->compat_conn;
- files_struct *fsp;
+ files_struct *fsp = NULL;
+ NTSTATUS status;
req = tevent_req_create(mem_ctx, &state,
struct smbd_smb2_setinfo_state);
@@ -208,7 +209,6 @@ static struct tevent_req *smbd_smb2_setinfo_send(TALLOC_CTX *mem_ctx,
char *data;
int data_size;
int ret_size = 0;
- NTSTATUS status;
file_info_level = in_file_info_class + 1000;
@@ -285,7 +285,7 @@ static struct tevent_req *smbd_smb2_setinfo_send(TALLOC_CTX *mem_ctx,
if (data_size > 0) {
data = (char *)SMB_MALLOC_ARRAY(char, data_size);
if (tevent_req_nomem(data, req)) {
-
+ return tevent_req_post(req, ev);
}
memcpy(data, in_input_buffer.data, data_size);
}
@@ -308,6 +308,19 @@ static struct tevent_req *smbd_smb2_setinfo_send(TALLOC_CTX *mem_ctx,
break;
}
+ case 0x03:/* SMB2_SETINFO_SECURITY */
+ {
+ status = set_sd(fsp,
+ in_input_buffer.data,
+ in_input_buffer.length,
+ in_additional_information);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return tevent_req_post(req, ev);
+ }
+ break;
+ }
+
default:
tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
return tevent_req_post(req, ev);
--
Samba Shared Repository
More information about the samba-cvs
mailing list