The branch, v3-6-test has been updated
       via  022e1d8 Fix bug #9585 - Samba 3.6.x not correctly signing any but 
the last response in a compound request/response
      from  035be05 Fix bug #9586 - smbd[29175]: disk_free: sys_popen() failed" 
message logged in /var/log/message many times.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit 022e1d889cbb752fc4f339dd537486bf3a52e34e
Author: Jeremy Allison <[email protected]>
Date:   Mon Jan 28 16:01:27 2013 -0800

    Fix bug #9585 - Samba 3.6.x not correctly signing any but the last response 
in a compound request/response
    
    Add in the missing code we already have in master
    and 4.0.x.
    
    Signed-off-by: Jeremy Allison <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 source3/smbd/smb2_server.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c
index a0e390e..cc884c3 100644
--- a/source3/smbd/smb2_server.c
+++ b/source3/smbd/smb2_server.c
@@ -1802,6 +1802,25 @@ static NTSTATUS smbd_smb2_request_reply(struct 
smbd_smb2_request *req)
                if (!im) {
                        return NT_STATUS_NO_MEMORY;
                }
+
+               if (req->do_signing) {
+                       /*
+                        * We sign each reply as we go along.
+                        * We can do this as smb2_calculate_credits()
+                        * grants zero credits on every part of a
+                        * compound reply except the last one,
+                        * which is signed just before calling
+                        * tstream_writev_queue_send().
+                        */
+                       NTSTATUS status;
+                       status = 
smb2_signing_sign_pdu(req->session->session_key,
+                                              &req->out.vector[i], 3);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               TALLOC_FREE(im);
+                               return status;
+                       }
+               }
+
                tevent_schedule_immediate(im,
                                        req->sconn->smb2.event_ctx,
                                        smbd_smb2_request_dispatch_immediate,


-- 
Samba Shared Repository

Reply via email to