The branch, v3-devel has been updated
       via  1f38b9963c4ec0d73da496a72ba4ee74d8d581c9 (commit)
       via  c65726d418601cdc86202c0371615e4f7f3d843c (commit)
       via  ecf2b906f476e4a764d0e53eed84b9b75a2062c0 (commit)
       via  78f009b7ef1f1d63b21df9ba6da7fcca01c12109 (commit)
      from  34a32db9060e7b60455774f923f61b7367ee3fcf (commit)

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


- Log -----------------------------------------------------------------
commit 1f38b9963c4ec0d73da496a72ba4ee74d8d581c9
Author: Jeremy Allison <[EMAIL PROTECTED]>
Date:   Wed Aug 13 16:52:53 2008 -0700

    Fix coverity CID: 594. Resource leak on error path.
    Jeremy.

commit c65726d418601cdc86202c0371615e4f7f3d843c
Author: Jeremy Allison <[EMAIL PROTECTED]>
Date:   Wed Aug 13 16:45:34 2008 -0700

    Fix for bug #5688 from SATOH Fumiyasu <[EMAIL PROTECTED]>. LPQ process is 
orphaned if socket address parameter is invalid.
    If the "socket address" parameter is a null string that is an invalid value 
for Samba 3.2 but valid for Samba 3.0.
    Jeremy.

commit ecf2b906f476e4a764d0e53eed84b9b75a2062c0
Author: Jeremy Allison <[EMAIL PROTECTED]>
Date:   Wed Aug 13 15:46:35 2008 -0700

    Fix for bug #5617, reported and patched by Bartosz Antosik [EMAIL PROTECTED]
    xp/2003 explorer freezes browsing shares on samba ipv6 hosts. Caused by 
missing
    reply packet to SMB printclose packet.
    Jeremy

commit 78f009b7ef1f1d63b21df9ba6da7fcca01c12109
Author: Jim McDonough <[EMAIL PROTECTED]>
Date:   Wed Aug 13 18:03:51 2008 -0400

    Prevent NT_STATUS 0xF1000000 errors from appearing when
    dos errors are used and there is no error.  It should
    be mapped directly to NT_STATUS_OK.  smbclient to older
    servers didn't work.

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

Summary of changes:
 source/libsmb/async_smb.c          |    6 ++++++
 source/rpc_server/srv_spoolss_nt.c |    6 ++++--
 source/smbd/reply.c                |    2 ++
 source/smbd/server.c               |    3 ++-
 4 files changed, 14 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libsmb/async_smb.c b/source/libsmb/async_smb.c
index 04c22a9..58bba2b 100644
--- a/source/libsmb/async_smb.c
+++ b/source/libsmb/async_smb.c
@@ -31,6 +31,12 @@ NTSTATUS cli_pull_error(char *buf)
                return NT_STATUS(IVAL(buf, smb_rcls));
        }
 
+       /* if the client uses dos errors, but there is no error,
+          we should return no error here, otherwise it looks
+          like an unknown bad NT_STATUS. jmcd */
+       if (CVAL(buf, smb_rcls) == 0)
+               return NT_STATUS_OK;
+
        return NT_STATUS_DOS(CVAL(buf, smb_rcls), SVAL(buf,smb_err));
 }
 
diff --git a/source/rpc_server/srv_spoolss_nt.c 
b/source/rpc_server/srv_spoolss_nt.c
index f802400..635898a 100644
--- a/source/rpc_server/srv_spoolss_nt.c
+++ b/source/rpc_server/srv_spoolss_nt.c
@@ -5037,8 +5037,10 @@ static WERROR getprinter_level_7(Printer_entry 
*print_hnd, int snum, RPC_BUFFER
        if((printer=SMB_MALLOC_P(PRINTER_INFO_7))==NULL)
                return WERR_NOMEM;
 
-       if (!construct_printer_info_7(print_hnd, printer, snum))
-               return WERR_NOMEM;
+       if (!construct_printer_info_7(print_hnd, printer, snum)) {
+               result = WERR_NOMEM;
+               goto out;
+       }
 
        /* check the required size. */
        *needed += spoolss_size_printer_info_7(printer);
diff --git a/source/smbd/reply.c b/source/smbd/reply.c
index d32d998..b3d691f 100644
--- a/source/smbd/reply.c
+++ b/source/smbd/reply.c
@@ -4702,6 +4702,8 @@ void reply_printclose(struct smb_request *req)
                return;
        }
 
+       reply_outbuf(req, 0, 0);
+
        END_PROFILE(SMBsplclose);
        return;
 }
diff --git a/source/smbd/server.c b/source/smbd/server.c
index 0d855f8..53116f3 100644
--- a/source/smbd/server.c
+++ b/source/smbd/server.c
@@ -469,7 +469,8 @@ static bool open_sockets_smbd(bool is_daemon, bool 
interactive, const char *smb_
                char *sock_tok;
                const char *sock_ptr;
 
-               if (strequal(sock_addr, "0.0.0.0") ||
+               if (sock_addr[0] == '\0' ||
+                               strequal(sock_addr, "0.0.0.0") ||
                                strequal(sock_addr, "::")) {
 #if HAVE_IPV6
                        sock_addr = "::,0.0.0.0";


-- 
Samba Shared Repository

Reply via email to