The branch, master has been updated
       via  e58ade4136b40d82c24f3556845e7412a3330992 (commit)
       via  c29826a697f8d92b6b481a694c05b4d8a8e7424d (commit)
      from  ca9d67bf187409e92d1800b86aa7f45e9d2f7260 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit e58ade4136b40d82c24f3556845e7412a3330992
Author: Volker Lendecke <[email protected]>
Date:   Fri Mar 6 14:24:59 2009 +0100

    Fix a smbclient segfault against security=share servers

commit c29826a697f8d92b6b481a694c05b4d8a8e7424d
Author: Volker Lendecke <[email protected]>
Date:   Tue Mar 3 14:05:56 2009 +0100

    Fix some nonempty blank lines

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

Summary of changes:
 source3/libsmb/cliconnect.c  |   13 +++++++++--
 source3/libsmb/smb_signing.c |   44 +++++++++++++++++++++---------------------
 2 files changed, 32 insertions(+), 25 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
index e3d1b65..ec29324 100644
--- a/source3/libsmb/cliconnect.c
+++ b/source3/libsmb/cliconnect.c
@@ -1297,10 +1297,17 @@ struct async_req *cli_tcon_andx_send(TALLOC_CTX 
*mem_ctx,
        return result;
 
  access_denied:
-       result = async_req_new(mem_ctx);
-       if (async_post_ntstatus(result, ev, NT_STATUS_ACCESS_DENIED)) {
-               return result;
+       {
+               struct cli_request *state;
+               if (!async_req_setup(mem_ctx, &result, &state,
+                                    struct cli_request)) {
+                       goto fail;
+               }
+               if (async_post_ntstatus(result, ev, NT_STATUS_ACCESS_DENIED)) {
+                       return result;
+               }
        }
+ fail:
        TALLOC_FREE(result);
        return NULL;
 }
diff --git a/source3/libsmb/smb_signing.c b/source3/libsmb/smb_signing.c
index 55b30d4..a3ed0e7 100644
--- a/source3/libsmb/smb_signing.c
+++ b/source3/libsmb/smb_signing.c
@@ -3,17 +3,17 @@
    SMB Signing Code
    Copyright (C) Jeremy Allison 2003.
    Copyright (C) Andrew Bartlett <[email protected]> 2002-2003
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -119,14 +119,14 @@ static bool cli_set_smb_signing_common(struct cli_state 
*cli)
        if (cli->sign_info.doing_signing) {
                return False;
        }
-       
+
        if (cli->sign_info.free_signing_context)
                cli->sign_info.free_signing_context(&cli->sign_info);
 
        /* These calls are INCOMPATIBLE with SMB signing */
        cli->readbraw_supported = False;
        cli->writebraw_supported = False;
-       
+
        return True;
 }
 
@@ -196,7 +196,7 @@ static void null_free_signing_context(struct smb_sign_info 
*si)
 static bool null_set_signing(struct smb_sign_info *si)
 {
        si->signing_context = NULL;
-       
+
        si->sign_outgoing_message = null_sign_outgoing_message;
        si->check_incoming_message = null_check_incoming_message;
        si->free_signing_context = null_free_signing_context;
@@ -207,7 +207,7 @@ static bool null_set_signing(struct smb_sign_info *si)
 /**
  * Free the signing context
  */
- 
+
 static void free_signing_context(struct smb_sign_info *si)
 {
        if (si->free_signing_context) {
@@ -227,7 +227,7 @@ static bool signing_good(const char *inbuf, struct 
smb_sign_info *si,
                if (!si->doing_signing) {
                        si->doing_signing = True;
                }
-               
+
                if (!si->seen_valid) {
                        si->seen_valid = True;
                }
@@ -289,7 +289,7 @@ static void simple_packet_signature(struct 
smb_basic_signing_context *data,
 
        /* Calculate the 16 byte MAC - but don't alter the data in the
           incoming packet.
-          
+
           This makes for a bit of fussing about, but it's not too bad.
        */
        MD5Init(&md5_ctx);
@@ -368,7 +368,7 @@ static void client_sign_outgoing_message(char *outbuf, 
struct smb_sign_info *si)
           I can isolate the fix here rather than re-adding the trans
           signing on/off calls in libsmb/clitrans2.c JRA.
         */
-       
+
        if (store_sequence_for_reply(&data->outstanding_packet_list, 
SVAL(outbuf,smb_mid), data->send_seq_num + 1)) {
                data->send_seq_num += 2;
        }
@@ -409,11 +409,11 @@ static bool client_check_incoming_message(const char 
*inbuf,
 
        server_sent_mac = (unsigned char *)&inbuf[smb_ss_field];
        good = (memcmp(server_sent_mac, calc_md5_mac, 8) == 0);
-       
+
        if (!good) {
                DEBUG(5, ("client_check_incoming_message: BAD SIG: wanted SMB 
signature of\n"));
                dump_data(5, calc_md5_mac, 8);
-               
+
                DEBUG(5, ("client_check_incoming_message: BAD SIG: got SMB 
signature of\n"));
                dump_data(5, server_sent_mac, 8);
 #if 1 /* JRATEST */
@@ -447,7 +447,7 @@ static void simple_free_signing_context(struct 
smb_sign_info *si)
                (struct smb_basic_signing_context *)si->signing_context;
        struct outstanding_packet_lookup *list;
        struct outstanding_packet_lookup *next;
-       
+
        for (list = data->outstanding_packet_list; list; list = next) {
                next = list->next;
                DLIST_REMOVE(data->outstanding_packet_list, list);
@@ -486,7 +486,7 @@ bool cli_simple_set_signing(struct cli_state *cli,
        memset(data, '\0', sizeof(*data));
 
        cli->sign_info.signing_context = data;
-       
+
        data->mac_key = data_blob(NULL, response.length + 
user_session_key.length);
 
        memcpy(&data->mac_key.data[0], user_session_key.data, 
user_session_key.length);
@@ -571,7 +571,7 @@ bool cli_temp_set_signing(struct cli_state *cli)
        }
 
        cli->sign_info.signing_context = NULL;
-       
+
        cli->sign_info.sign_outgoing_message = temp_sign_outgoing_message;
        cli->sign_info.check_incoming_message = temp_check_incoming_message;
        cli->sign_info.free_signing_context = temp_free_signing_context;
@@ -587,7 +587,7 @@ void cli_free_signing_context(struct cli_state *cli)
 /**
  * Sign a packet with the current mechanism
  */
- 
+
 void cli_calculate_sign_mac(struct cli_state *cli, char *buf)
 {
        cli->sign_info.sign_outgoing_message(buf, &cli->sign_info);
@@ -598,7 +598,7 @@ void cli_calculate_sign_mac(struct cli_state *cli, char 
*buf)
  * @return False if we had an established signing connection
  *         which had a bad checksum, True otherwise.
  */
- 
+
 bool cli_check_sign_mac(struct cli_state *cli, char *buf)
 {
        if (!cli->sign_info.check_incoming_message(buf, &cli->sign_info, True)) 
{
@@ -746,7 +746,7 @@ static bool srv_check_incoming_message(const char *inbuf,
 
        server_sent_mac = (unsigned char *)&inbuf[smb_ss_field];
        good = (memcmp(server_sent_mac, calc_md5_mac, 8) == 0);
-       
+
        if (!good) {
 
                if (saved_seq) {
@@ -758,7 +758,7 @@ static bool srv_check_incoming_message(const char *inbuf,
                                                (unsigned 
int)reply_seq_number));
                        dump_data(5, server_sent_mac, 8);
                }
-               
+
 #if 1 /* JRATEST */
                {
                        int i;
@@ -971,17 +971,17 @@ void srv_set_signing(const DATA_BLOB user_session_key, 
const DATA_BLOB response)
        if (srv_sign_info.doing_signing) {
                return;
        }
-       
+
        if (srv_sign_info.free_signing_context)
                srv_sign_info.free_signing_context(&srv_sign_info);
-       
+
        srv_sign_info.doing_signing = True;
 
        data = SMB_XMALLOC_P(struct smb_basic_signing_context);
        memset(data, '\0', sizeof(*data));
 
        srv_sign_info.signing_context = data;
-       
+
        data->mac_key = data_blob(NULL, response.length + 
user_session_key.length);
 
        memcpy(&data->mac_key.data[0], user_session_key.data, 
user_session_key.length);


-- 
Samba Shared Repository

Reply via email to