[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