The branch, master has been updated
       via  1f62df5 s3: Move a talloc_strdup out of the main code path
       via  b709589 s3: Fix some format string warnings
      from  f033c22 policy/python: Move python binding tests to standard 
location.

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


- Log -----------------------------------------------------------------
commit 1f62df52aaafc4f777fed4541625a92f15c8e12c
Author: Volker Lendecke <v...@samba.org>
Date:   Mon Mar 5 16:56:53 2012 +0100

    s3: Move a talloc_strdup out of the main code path
    
    This is only used for AS_GUEST requests
    
    Autobuild-User: Volker Lendecke <v...@samba.org>
    Autobuild-Date: Tue Mar  6 14:29:50 CET 2012 on sn-devel-104

commit b709589445820ae8b30e9554c08ca205c3b946f1
Author: Volker Lendecke <v...@samba.org>
Date:   Sat Mar 3 21:37:13 2012 +0100

    s3: Fix some format string warnings
    
    We were printing nmb->header.name_trn_id with %hu, which denotes a
    short. However, header.name_trn_id is an int for the better or
    worse.

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

Summary of changes:
 source3/nmbd/nmbd_packets.c |   22 ++++++++++++--------
 source3/smbd/process.c      |   46 +++++++++++++++++++++++++++++--------------
 2 files changed, 44 insertions(+), 24 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/nmbd/nmbd_packets.c b/source3/nmbd/nmbd_packets.c
index 81e2f7f..f8bfe45 100644
--- a/source3/nmbd/nmbd_packets.c
+++ b/source3/nmbd/nmbd_packets.c
@@ -963,9 +963,10 @@ void reply_netbios_packet(struct packet_struct 
*orig_packet,
                        return;
        }
 
-       DEBUG(4,("reply_netbios_packet: sending a reply of packet type: %s %s 
to ip %s \
-for id %hu\n", packet_type, nmb_namestr(&orig_nmb->question.question_name),
-                       inet_ntoa(packet.ip), orig_nmb->header.name_trn_id));
+       DEBUG(4, ("reply_netbios_packet: sending a reply of packet type: %s "
+                 "%s to ip %s for id %d\n", packet_type,
+                 nmb_namestr(&orig_nmb->question.question_name),
+                 inet_ntoa(packet.ip), orig_nmb->header.name_trn_id));
 
        nmb->header.name_trn_id = orig_nmb->header.name_trn_id;
        nmb->header.opcode = opcode;
@@ -1435,15 +1436,17 @@ static struct subnet_record 
*find_subnet_for_nmb_packet( struct packet_struct *p
 
                rrec = find_response_record( &subrec, nmb->header.name_trn_id);
                if(rrec == NULL) {
-                       DEBUG(3,("find_subnet_for_nmb_packet: response record 
not found for response id %hu\n",
-                               nmb->header.name_trn_id));
+                       DEBUG(3, ("find_subnet_for_nmb_packet: response "
+                                 "record not found for response id %d\n",
+                                 nmb->header.name_trn_id));
                        nb_packet_dispatch(packet_server, p);
                        return NULL;
                }
 
                if(subrec == NULL) {
-                       DEBUG(0,("find_subnet_for_nmb_packet: subnet record not 
found for response id %hu\n",
-                               nmb->header.name_trn_id));
+                       DEBUG(0, ("find_subnet_for_nmb_packet: subnet record "
+                                 "not found for response id %d\n",
+                                 nmb->header.name_trn_id));
                        return NULL;
                }
 
@@ -1565,8 +1568,9 @@ static void process_nmb_response(struct packet_struct *p)
                return;
 
        if(rrec == NULL) {
-               DEBUG(0,("process_nmb_response: response packet received but no 
response record \
-found for id = %hu. Ignoring packet.\n", nmb->header.name_trn_id));
+               DEBUG(0, ("process_nmb_response: response packet received but "
+                         "no response record found for id = %d. Ignoring "
+                         "packet.\n", nmb->header.name_trn_id));
                return;
        }
 
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index f61ad5d..1131318 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -1351,7 +1351,6 @@ static connection_struct *switch_message(uint8 type, 
struct smb_request *req)
        uint16 session_tag;
        connection_struct *conn = NULL;
        struct smbd_server_connection *sconn = req->sconn;
-       char *raddr;
 
        errno = 0;
 
@@ -1466,21 +1465,38 @@ static connection_struct *switch_message(uint8 type, 
struct smb_request *req)
                conn->num_smb_operations++;
        }
 
-       raddr = tsocket_address_inet_addr_string(sconn->remote_address,
-                                                talloc_tos());
-       if (raddr == NULL) {
-               reply_nterror(req, NT_STATUS_NO_MEMORY);
-               return conn;
-       }
+       /*
+        * Does this protocol need to be run as guest? (Only archane
+        * messenger service requests have this...)
+        */
+       if (flags & AS_GUEST) {
+               char *raddr;
+               bool ok;
+
+               if (!change_to_guest()) {
+                       reply_nterror(req, NT_STATUS_ACCESS_DENIED);
+                       return conn;
+               }
+
+               raddr = tsocket_address_inet_addr_string(sconn->remote_address,
+                                                        talloc_tos());
+               if (raddr == NULL) {
+                       reply_nterror(req, NT_STATUS_NO_MEMORY);
+                       return conn;
+               }
+
+               /*
+                * Haven't we checked this in smbd_process already???
+                */
+
+               ok = allow_access(lp_hostsdeny(-1), lp_hostsallow(-1),
+                                 sconn->remote_hostname, raddr);
+               TALLOC_FREE(raddr);
 
-       /* does this protocol need to be run as guest? */
-       if ((flags & AS_GUEST)
-           && (!change_to_guest() ||
-               !allow_access(lp_hostsdeny(-1), lp_hostsallow(-1),
-                             sconn->remote_hostname,
-                             raddr))) {
-               reply_nterror(req, NT_STATUS_ACCESS_DENIED);
-               return conn;
+               if (!ok) {
+                       reply_nterror(req, NT_STATUS_ACCESS_DENIED);
+                       return conn;
+               }
        }
 
        smb_messages[type].fn(req);


-- 
Samba Shared Repository

Reply via email to