The branch, master has been updated
       via  36da56e Make systemctl reference indirect in 
packaging/NetworkManager/30-winbind-systemd
       via  92b0871 s3-rpc_server: Make sure that fd is really closed on error. 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  3ca727b lib-util: Don't leak file descriptor on error. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  c647169 s3-vfs: Don't leak file descriptor on error. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  6213606 s4-lib: Don't leak plugin handle on error. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  6e8a975 s3-libsmb: Don't leak memory on error. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  32a107c ndrdump: Don't leak plugin handle on error. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  312355a smbpasswd: Don't leak memory. Reviewed-by: Alexander 
Bokovoy <[email protected]>
       via  3a3baa4 smbget: Fix file descriptor leak. Reviewed-by: Alexander 
Bokovoy <[email protected]>
       via  aa6cc31 s4-policy: Fix memory leaks in push_recursive(). 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  82e9ff8 s4-cifsdd: Don't leak memory. Reviewed-by: Alexander 
Bokovoy <[email protected]>
       via  f4d1e8c s4-registry: Don't leak file descriptor. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  66ee744 s4-registry: Don't leak memory on error. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  b055798 winbind: Don't leak centry memory. Reviewed-by: Alexander 
Bokovoy <[email protected]>
       via  cf8be08 s4-client: Don't leak memory. Reviewed-by: Alexander 
Bokovoy <[email protected]>
       via  d5a210a s3-torture: Don't leak memory. Reviewed-by: Alexander 
Bokovoy <[email protected]>
       via  301a3cb wbinfo: Fix several memory leaks. Reviewed-by: Alexander 
Bokovoy <[email protected]>
       via  d555f6d winbind: Don't leak memory on return. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  b229d1d s3-smbd: Don't leak subcntarr array. Reviewed-by: Alexander 
Bokovoy <[email protected]>
       via  6ac1435 torture: Don't leak file resource handle in spoolss test. 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  aab2e17 s3-vfs: Don't leak file descriptor. Reviewed-by: Alexander 
Bokovoy <[email protected]>
       via  6b2b125 s3-param: Don't leak file descriptor. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  f573826 s3-lsasd: Don't leak file descriptors. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  c013df3 s3-spoolss: Don't leak memory. Reviewed-by: Alexander 
Bokovoy <[email protected]>
       via  b70d116 s3-net: Don't leak username. Reviewed-by: Alexander Bokovoy 
<[email protected]>
       via  b91a20f s4-client: Don't leak file descriptor. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  34ad975 s4-client: Don't leak resource handle. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  e762858 torture: Make sure we don't overrun the buffer. 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  1d24fa6 torture: Fix memcmp of short buffer. Reviewed-by: Alexander 
Bokovoy <[email protected]>
       via  aff301d torture: Fix array access in spoolss test. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  b510e5e pdb: Fix array overrun by one. Reviewed-by: Alexander 
Bokovoy <[email protected]>
       via  5207d45 s4-libcli: Check return value of smbcli_request_setup(). 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  9e6e9c7 pyauth: Check return value of lpcfg_from_py_object(). 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  a9e6240 ndrdump: Check return value of ndr_pull_init_blob(). 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  318ecbc s4-libcli: Check return code of smbcli_request_setup(). 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  e508746 librpc: Add NULL check for ndr functions for epm bindings. 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  f4761c9 s3-tldap: Make sure we don't deref a null pointer. 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  a3ac48d s4-libcli: Add null check for ndr functions in rap. 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  52530f5 nmbd: Fix request data data processing.
       via  742296d torture: Fix samsync domain_name checks. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  48a4539 libsmb: Fix possible null pointer dereference. Reviewed-by: 
Alexander Bokovoy <[email protected]>
       via  8bfbb81 ndr: Comparing an array to null is always true. 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  03cf4be winbind: Correctly cast name to messaging_send_buf(). 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  de14fd9 winbind: Use uint8_t type and use const where needed. 
Reviewed-by: Alexander Bokovoy <[email protected]>
       via  2b89067 messages: Use uint8_t type. Reviewed-by: Alexander Bokovoy 
<[email protected]>
       via  4567174 winbind: Make domain_name const in wcache_ndr_key(). 
Reviewed-by: Alexander Bokovoy <[email protected]>
      from  240a552 build: use -fstack-protector if available

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


- Log -----------------------------------------------------------------
commit 36da56ec51ecf03458fd85741ae248b49cf0d592
Author: Alexander Bokovoy <[email protected]>
Date:   Fri Feb 22 12:07:19 2013 +0200

    Make systemctl reference indirect in 
packaging/NetworkManager/30-winbind-systemd
    
    Some distributions have clever dependency generators when building packages
    and generate dependencies for each executable called out in shell scripts.
    The end result is that a package built out of samba would contain explicit 
dependency
    to systemd even though it is usable without systemd.
    
    Making systemctl reference indirect avoids explicit dependency.
    
    Reviewed-by: Andreas Schneider <[email protected]>
    
    Autobuild-User(master): Alexander Bokovoy <[email protected]>
    Autobuild-Date(master): Fri Feb 22 18:18:20 CET 2013 on sn-devel-104

commit 92b087182c047cd457bbe04d6306c50451698d61
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 10:52:37 2013 +0100

    s3-rpc_server: Make sure that fd is really closed on error.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 3ca727b2f98ca942040d5a6c54fe61bb268d75d9
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 10:48:05 2013 +0100

    lib-util: Don't leak file descriptor on error.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit c647169e2850cf6f8ea8705d7008e3ce4d24f454
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 10:45:06 2013 +0100

    s3-vfs: Don't leak file descriptor on error.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 62136067712aad9cff8c757b2bfb228ebbecfd76
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 10:42:54 2013 +0100

    s4-lib: Don't leak plugin handle on error.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 6e8a975e8e33670803e9166a942bd986e695f4fc
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 10:38:13 2013 +0100

    s3-libsmb: Don't leak memory on error.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 32a107cfcc04aa05b4db525fcc0dd7550264dff3
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 10:36:52 2013 +0100

    ndrdump: Don't leak plugin handle on error.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 312355ad59001fcc1eaa30344d69fc8c91acebc8
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 10:25:55 2013 +0100

    smbpasswd: Don't leak memory.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 3a3baa442ed77dbc0688d25571bc0edb5c367bcb
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 10:23:45 2013 +0100

    smbget: Fix file descriptor leak.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit aa6cc31ef9b1789b3e81222204f30ba01d69803a
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 10:22:00 2013 +0100

    s4-policy: Fix memory leaks in push_recursive().
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 82e9ff81cf6a9945cad799ae35279e16837b8033
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 10:09:20 2013 +0100

    s4-cifsdd: Don't leak memory.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit f4d1e8c1e2920560c9db49cd3511f0edbd577c8b
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 10:10:15 2013 +0100

    s4-registry: Don't leak file descriptor.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 66ee744ccbb0a57e651d76881328554dffab8bcd
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 10:03:13 2013 +0100

    s4-registry: Don't leak memory on error.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit b055798c5660e48f88b74478b89ce88aae9ed019
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:51:43 2013 +0100

    winbind: Don't leak centry memory.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit cf8be08968f2aae3769140aee00ecac542ff1884
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:48:59 2013 +0100

    s4-client: Don't leak memory.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit d5a210a26f289bba92192187fa543ed70bdf8387
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:47:19 2013 +0100

    s3-torture: Don't leak memory.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 301a3cb4afadab6232a34086339696abd0dcbe0c
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:43:44 2013 +0100

    wbinfo: Fix several memory leaks.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit d555f6d789ede9879f2b5d07d5c00199622ffe5a
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:41:55 2013 +0100

    winbind: Don't leak memory on return.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit b229d1dcb324c3da9d0865bd72a07e9e1b8b0c53
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:31:17 2013 +0100

    s3-smbd: Don't leak subcntarr array.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 6ac1435ab3389d36497ece61a2461d9ccc7b4560
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:26:02 2013 +0100

    torture: Don't leak file resource handle in spoolss test.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit aab2e176dc8f67424cf8b4475a8bd38c79ad999a
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:16:25 2013 +0100

    s3-vfs: Don't leak file descriptor.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 6b2b125ab910530610b5e3e4b72f6733bd1f174f
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:15:26 2013 +0100

    s3-param: Don't leak file descriptor.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit f573826f18e590dd53a0795b670e6f30a3f5cd68
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:11:48 2013 +0100

    s3-lsasd: Don't leak file descriptors.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit c013df3ae52d57b1206f156a2fc529f52cf39531
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:06:51 2013 +0100

    s3-spoolss: Don't leak memory.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit b70d1168cf511c83eaa6a2761d3924935513d233
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:03:17 2013 +0100

    s3-net: Don't leak username.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit b91a20f704363374bc37aaa75e5d2c80f7997017
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 09:23:37 2013 +0100

    s4-client: Don't leak file descriptor.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 34ad9756d73bc4203281ab39ff68489aab1b44e9
Author: Andreas Schneider <[email protected]>
Date:   Wed Feb 20 08:58:02 2013 +0100

    s4-client: Don't leak resource handle.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit e762858a054f865780e9f05f7896452a525890f4
Author: Andreas Schneider <[email protected]>
Date:   Tue Feb 19 18:19:12 2013 +0100

    torture: Make sure we don't overrun the buffer.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 1d24fa6919a4ff7588c20f1a0365fbfcfd404203
Author: Andreas Schneider <[email protected]>
Date:   Tue Feb 19 16:02:01 2013 +0100

    torture: Fix memcmp of short buffer.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit aff301d9ebc4f5c1be059838a8a6ef6b38129f88
Author: Andreas Schneider <[email protected]>
Date:   Tue Feb 19 09:32:30 2013 +0100

    torture: Fix array access in spoolss test.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit b510e5e6c4332356067331c7afff47f7dbf587fc
Author: Andreas Schneider <[email protected]>
Date:   Tue Feb 19 09:23:53 2013 +0100

    pdb: Fix array overrun by one.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 5207d456f1132041a07c9b3c48bfa7a9112a698f
Author: Andreas Schneider <[email protected]>
Date:   Tue Feb 19 09:00:51 2013 +0100

    s4-libcli: Check return value of smbcli_request_setup().
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 9e6e9c7707506709de2b0e765647783f471b412a
Author: Andreas Schneider <[email protected]>
Date:   Tue Feb 19 08:58:00 2013 +0100

    pyauth: Check return value of lpcfg_from_py_object().
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit a9e6240441583688388885cf48c5d3df09263784
Author: Andreas Schneider <[email protected]>
Date:   Tue Feb 19 08:56:22 2013 +0100

    ndrdump: Check return value of ndr_pull_init_blob().
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 318ecbc2085d2eaee9d24a77c1c3496185af2bdd
Author: Andreas Schneider <[email protected]>
Date:   Mon Feb 18 18:00:38 2013 +0100

    s4-libcli: Check return code of smbcli_request_setup().
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit e50874606f235cf9d8cf159997b97fcb6ad74ce2
Author: Andreas Schneider <[email protected]>
Date:   Mon Feb 18 17:32:28 2013 +0100

    librpc: Add NULL check for ndr functions for epm bindings.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit f4761c90fa0f2161e3d799b69d569cd2e38fe10c
Author: Andreas Schneider <[email protected]>
Date:   Mon Feb 18 17:30:19 2013 +0100

    s3-tldap: Make sure we don't deref a null pointer.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit a3ac48d07fa101743a023c31046495125498e5a1
Author: Andreas Schneider <[email protected]>
Date:   Mon Feb 18 17:26:14 2013 +0100

    s4-libcli: Add null check for ndr functions in rap.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 52530f5c61994766fd4c85017fcf5287b2d16837
Author: Andreas Schneider <[email protected]>
Date:   Mon Feb 18 17:21:31 2013 +0100

    nmbd: Fix request data data processing.
    
    answers->rdata is an array and will never be NULL.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 742296d3c375630f76ced9970cff95d7bc1b2547
Author: Andreas Schneider <[email protected]>
Date:   Mon Feb 18 17:17:19 2013 +0100

    torture: Fix samsync domain_name checks.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 48a453996ac161d7c7a7cb15a047e57cbdbb1e87
Author: Andreas Schneider <[email protected]>
Date:   Mon Feb 18 17:11:15 2013 +0100

    libsmb: Fix possible null pointer dereference.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 8bfbb81bcd5a70280f49fbe3ab67ccf035fdeade
Author: Andreas Schneider <[email protected]>
Date:   Mon Feb 18 17:08:21 2013 +0100

    ndr: Comparing an array to null is always true.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 03cf4bedf0bb9729fcf70f321647cf780e002a48
Author: Andreas Schneider <[email protected]>
Date:   Mon Feb 18 16:24:38 2013 +0100

    winbind: Correctly cast name to messaging_send_buf().
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit de14fd942aaaa4e18bae7fc7cb109d9a60b12648
Author: Andreas Schneider <[email protected]>
Date:   Mon Feb 18 15:48:24 2013 +0100

    winbind: Use uint8_t type and use const where needed.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 2b890679a61efa676473c11ebbf7d31f4aeeb3b2
Author: Andreas Schneider <[email protected]>
Date:   Mon Feb 18 15:46:52 2013 +0100

    messages: Use uint8_t type.
    Reviewed-by: Alexander Bokovoy <[email protected]>

commit 45671747f0b4a569581773ce497ab4dd31e7710d
Author: Andreas Schneider <[email protected]>
Date:   Mon Feb 18 15:44:20 2013 +0100

    winbind: Make domain_name const in wcache_ndr_key().
    Reviewed-by: Alexander Bokovoy <[email protected]>

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

Summary of changes:
 lib/util/become_daemon.c                    |    1 +
 librpc/ndr/ndr_sec_helper.c                 |    2 +-
 librpc/rpc/binding.c                        |    7 +++-
 librpc/tools/ndrdump.c                      |   13 +++++++
 nsswitch/wbinfo.c                           |    8 ++++
 packaging/NetworkManager/30-winbind-systemd |    8 ++--
 source3/lib/messages.c                      |    4 +-
 source3/lib/tldap.c                         |    3 ++
 source3/libsmb/libsmb_server.c              |    1 +
 source3/libsmb/libsmb_xattr.c               |    4 +-
 source3/modules/vfs_aio_fork.c              |    3 +-
 source3/modules/vfs_crossrename.c           |    4 ++-
 source3/nmbd/nmbd_browsesync.c              |    4 +-
 source3/param/loadparm.c                    |    1 +
 source3/passdb/pdb_smbpasswd.c              |    7 ++--
 source3/rpc_server/lsasd.c                  |   29 ++++++++++------
 source3/rpc_server/rpc_sock_helper.c        |    6 +++
 source3/rpc_server/spoolss/srv_spoolss_nt.c |    4 ++-
 source3/smbd/lanman.c                       |    2 +-
 source3/torture/torture.c                   |    3 ++
 source3/utils/net_rpc.c                     |    3 +-
 source3/utils/smbget.c                      |    3 ++
 source3/utils/smbpasswd.c                   |    1 +
 source3/winbindd/winbindd_cache.c           |    3 +-
 source3/winbindd/winbindd_cm.c              |   17 +++++----
 source3/winbindd/winbindd_dual.c            |    6 ++--
 source4/auth/pyauth.c                       |    4 ++
 source4/client/cifsdd.c                     |    6 +++
 source4/client/client.c                     |   11 ++++++
 source4/lib/com/tables.c                    |    1 +
 source4/lib/policy/gp_filesys.c             |   40 ++++++++++++++--------
 source4/lib/registry/hive.c                 |    3 +-
 source4/lib/registry/tools/regshell.c       |    7 ++++
 source4/libcli/climessage.c                 |    9 +++++
 source4/libcli/rap/rap.c                    |    8 ++++
 source4/libcli/raw/clioplock.c              |    3 ++
 source4/libcli/raw/clitree.c                |    3 ++
 source4/libcli/raw/rawfsinfo.c              |    3 ++
 source4/torture/raw/open.c                  |    4 +-
 source4/torture/rpc/samsync.c               |   49 ++++++++++++++++++++++++--
 source4/torture/rpc/spoolss.c               |    5 ++-
 source4/torture/smb2/dir.c                  |    2 +-
 42 files changed, 237 insertions(+), 68 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/util/become_daemon.c b/lib/util/become_daemon.c
index 373927c..2ca0478 100644
--- a/lib/util/become_daemon.c
+++ b/lib/util/become_daemon.c
@@ -62,6 +62,7 @@ _PUBLIC_ void close_low_fds(bool stdin_too, bool stdout_too, 
bool stderr_too)
                }
                if (fd != i) {
                        DEBUG(0,("Didn't get file descriptor %d\n",i));
+                       close(fd);
                        return;
                }
        }
diff --git a/librpc/ndr/ndr_sec_helper.c b/librpc/ndr/ndr_sec_helper.c
index 66b0013..ea082d1 100644
--- a/librpc/ndr/ndr_sec_helper.c
+++ b/librpc/ndr/ndr_sec_helper.c
@@ -228,7 +228,7 @@ enum ndr_err_code ndr_pull_dom_sid28(struct ndr_pull *ndr, 
int ndr_flags, struct
        if (!NDR_ERR_CODE_IS_SUCCESS(status)) {
                /* handle a w2k bug which send random data in the buffer */
                ZERO_STRUCTP(sid);
-       } else if (sid->num_auths == 0 && sid->sub_auths) {
+       } else if (sid->num_auths == 0) {
                ZERO_STRUCT(sid->sub_auths);
        }
 
diff --git a/librpc/rpc/binding.c b/librpc/rpc/binding.c
index ce59349..49651e8 100644
--- a/librpc/rpc/binding.c
+++ b/librpc/rpc/binding.c
@@ -425,7 +425,12 @@ static DATA_BLOB dcerpc_floor_pack_lhs_data(TALLOC_CTX 
*mem_ctx, const struct nd
 {
        DATA_BLOB blob;
        enum ndr_err_code ndr_err;
-       struct ndr_push *ndr = ndr_push_init_ctx(mem_ctx);
+       struct ndr_push *ndr;
+
+       ndr = ndr_push_init_ctx(mem_ctx);
+       if (ndr == NULL) {
+               return data_blob_null;
+       }
 
        ndr->flags |= LIBNDR_FLAG_NOALIGN;
 
diff --git a/librpc/tools/ndrdump.c b/librpc/tools/ndrdump.c
index 4a102f5..692e655 100644
--- a/librpc/tools/ndrdump.c
+++ b/librpc/tools/ndrdump.c
@@ -117,6 +117,7 @@ static const struct ndr_interface_table 
*load_iface_from_plugin(const char *plug
        if (!p) {
                printf("%s: Unable to find DCE/RPC interface table for '%s': 
%s\n", plugin, pipe_name, dlerror());
                talloc_free(symbol);
+               dlclose(handle);
                return NULL;
        }
 
@@ -335,6 +336,10 @@ static NTSTATUS ndrdump_pull_and_print_pipes(const char 
*function,
                blob.length = size;
 
                ndr_pull = ndr_pull_init_blob(&blob, mem_ctx);
+               if (ndr_pull == NULL) {
+                       perror("ndr_pull_init_blob");
+                       exit(1);
+               }
                ndr_pull->flags |= LIBNDR_FLAG_REF_ALLOC;
                if (assume_ndr64) {
                        ndr_pull->flags |= LIBNDR_FLAG_NDR64;
@@ -377,6 +382,10 @@ static NTSTATUS ndrdump_pull_and_print_pipes(const char 
*function,
        blob.length = size;
 
        ndr_pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (ndr_pull == NULL) {
+               perror("ndr_pull_init_blob");
+               exit(1);
+       }
        ndr_pull->flags |= LIBNDR_FLAG_REF_ALLOC;
        if (assume_ndr64) {
                ndr_pull->flags |= LIBNDR_FLAG_NDR64;
@@ -459,6 +468,10 @@ static NTSTATUS ndrdump_pull_and_print_pipes(const char 
*function,
                }
 
                ndr_v_pull = ndr_pull_init_blob(&v_blob, mem_ctx);
+               if (ndr_v_pull == NULL) {
+                       perror("ndr_pull_init_blob");
+                       exit(1);
+               }
                ndr_v_pull->flags |= LIBNDR_FLAG_REF_ALLOC;
 
                ndr_err = f->ndr_pull(ndr_v_pull, flags, v_st);
diff --git a/nsswitch/wbinfo.c b/nsswitch/wbinfo.c
index b96b73c..cd6de34 100644
--- a/nsswitch/wbinfo.c
+++ b/nsswitch/wbinfo.c
@@ -243,6 +243,8 @@ static bool wbinfo_get_user_sidinfo(const char *sid_str)
                 pwd->pw_dir,
                 pwd->pw_shell);
 
+       wbcFreeMemory(pwd);
+
        return true;
 }
 
@@ -1227,6 +1229,9 @@ static bool wbinfo_lookupsid(const char *sid_str)
        d_printf("%s%c%s %d\n",
                 domain, winbind_separator(), name, type);
 
+       wbcFreeMemory(domain);
+       wbcFreeMemory(name);
+
        return true;
 }
 
@@ -1261,6 +1266,9 @@ static bool wbinfo_lookupsid_fullname(const char *sid_str)
        d_printf("%s%c%s %d\n",
                 domain, winbind_separator(), name, type);
 
+       wbcFreeMemory(domain);
+       wbcFreeMemory(name);
+
        return true;
 }
 
diff --git a/packaging/NetworkManager/30-winbind-systemd 
b/packaging/NetworkManager/30-winbind-systemd
index af0edf9..9db422a 100755
--- a/packaging/NetworkManager/30-winbind-systemd
+++ b/packaging/NetworkManager/30-winbind-systemd
@@ -1,6 +1,6 @@
 #!/bin/sh
-
-winbind_is_active=$(/bin/systemctl is-active winbind.service)
+SYSTEMCTL=/bin/systemctl
+winbind_is_active=$($SYSTEMCTL is-active winbind.service)
 test "${winbind_is_active}" = "active" || exit 0
 
 winbind_offline_logon=$(testparm -s --parameter-name "winbind offline logon" 
2>/dev/null)
@@ -8,9 +8,9 @@ test "${winbind_offline_logon}" = "Yes" || exit 0
 
 case "$2" in
        up|vpn-up)
-               nmb_is_active=$(/bin/systemctl is-active nmb.service)
+               nmb_is_active=$($SYSTEMCTL is-active nmb.service)
                if test "${nmb_is_active}" = "active"; then
-                       /bin/systemctl try-restart nmb.service || :
+                       $SYSTEMCTL try-restart nmb.service || :
                fi
                /usr/bin/smbcontrol winbind online || :
        ;;
diff --git a/source3/lib/messages.c b/source3/lib/messages.c
index b60ab79..f4d6227 100644
--- a/source3/lib/messages.c
+++ b/source3/lib/messages.c
@@ -119,7 +119,7 @@ static int traverse_fn(struct db_record *rec, const struct 
server_id *id,
         * the msg has already been deleted from the messages.tdb.*/
 
        status = messaging_send_buf(msg_all->msg_ctx, *id, msg_all->msg_type,
-                                   (const uint8 *)msg_all->buf, msg_all->len);
+                                   (const uint8_t *)msg_all->buf, 
msg_all->len);
 
        if (NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) {
 
@@ -368,7 +368,7 @@ NTSTATUS messaging_send(struct messaging_context *msg_ctx,
 
 NTSTATUS messaging_send_buf(struct messaging_context *msg_ctx,
                            struct server_id server, uint32_t msg_type,
-                           const uint8 *buf, size_t len)
+                           const uint8_t *buf, size_t len)
 {
        DATA_BLOB blob = data_blob_const(buf, len);
        return messaging_send(msg_ctx, server, msg_type, &blob);
diff --git a/source3/lib/tldap.c b/source3/lib/tldap.c
index 8e91234..b094c2d 100644
--- a/source3/lib/tldap.c
+++ b/source3/lib/tldap.c
@@ -1370,6 +1370,9 @@ static bool tldap_push_filter_basic(struct tldap_context 
*ld,
                        dn++;
 
                        rule = strchr(dn, ':');
+                       if (rule == NULL) {
+                               return false;
+                       }
                        if ((rule == dn + 1) || rule + 1 == e) {
                                /* malformed filter, contains "::" */
                                return false;
diff --git a/source3/libsmb/libsmb_server.c b/source3/libsmb/libsmb_server.c
index 858622f..0d39245 100644
--- a/source3/libsmb/libsmb_server.c
+++ b/source3/libsmb/libsmb_server.c
@@ -812,6 +812,7 @@ SMBC_attr_server(TALLOC_CTX *ctx,
                 if (!NT_STATUS_IS_OK(nt_status)) {
                         errno = SMBC_errno(context, ipc_srv->cli);
                         cli_shutdown(ipc_srv->cli);
+                        free(ipc_srv);
                         return NULL;
                 }
 
diff --git a/source3/libsmb/libsmb_xattr.c b/source3/libsmb/libsmb_xattr.c
index 03cdc34..c2ba61f 100644
--- a/source3/libsmb/libsmb_xattr.c
+++ b/source3/libsmb/libsmb_xattr.c
@@ -351,7 +351,7 @@ parse_ace(struct cli_state *ipc_cli,
                goto done;
        }
 
-       for (v = standard_values; v->perm; v++) {
+       for (v = standard_values; v != NULL; v++) {
                if (strcmp(tok, v->perm) == 0) {
                        amask = v->mask;
                        goto done;
@@ -363,7 +363,7 @@ parse_ace(struct cli_state *ipc_cli,
        while(*p) {
                bool found = False;
 
-               for (v = special_values; v->perm; v++) {
+               for (v = special_values; v != NULL; v++) {
                        if (v->perm[0] == *p) {
                                amask |= v->mask;
                                found = True;
diff --git a/source3/modules/vfs_aio_fork.c b/source3/modules/vfs_aio_fork.c
index 1d840fa..dc33031 100644
--- a/source3/modules/vfs_aio_fork.c
+++ b/source3/modules/vfs_aio_fork.c
@@ -68,13 +68,12 @@ static struct mmap_area *mmap_area_init(TALLOC_CTX 
*mem_ctx, size_t size)
 
        result->ptr = mmap(NULL, size, PROT_READ|PROT_WRITE,
                           MAP_SHARED|MAP_FILE, fd, 0);
+       close(fd);
        if (result->ptr == MAP_FAILED) {
                DEBUG(1, ("mmap failed: %s\n", strerror(errno)));
                goto fail;
        }
 
-       close(fd);
-
        result->size = size;
        talloc_set_destructor(result, mmap_area_destructor);
 
diff --git a/source3/modules/vfs_crossrename.c 
b/source3/modules/vfs_crossrename.c
index 19a182c..9bb42b9 100644
--- a/source3/modules/vfs_crossrename.c
+++ b/source3/modules/vfs_crossrename.c
@@ -73,8 +73,10 @@ static int copy_reg(const char *source, const char *dest)
        if((ifd = open (source, O_RDONLY, 0)) < 0)
                return -1;
 
-       if (unlink (dest) && errno != ENOENT)
+       if (unlink (dest) && errno != ENOENT) {
+               close(ifd);
                return -1;
+       }
 
 #ifdef O_NOFOLLOW
        if((ofd = open (dest, O_WRONLY | O_CREAT | O_TRUNC | O_NOFOLLOW, 0600)) 
< 0 )
diff --git a/source3/nmbd/nmbd_browsesync.c b/source3/nmbd/nmbd_browsesync.c
index 8bc28ad..30d2891 100644
--- a/source3/nmbd/nmbd_browsesync.c
+++ b/source3/nmbd/nmbd_browsesync.c
@@ -194,7 +194,7 @@ static void domain_master_node_status_success(struct 
subnet_record *subrec,
   /* Go through the list of names found at answers->rdata and look for
      the first SERVER<0x20> name. */
 
-       if(answers->rdata != NULL) {
+       if (answers->rdlength > 0) {
                char *p = answers->rdata;
                int numnames = CVAL(p, 0);
 
@@ -416,7 +416,7 @@ static void 
get_domain_master_name_node_status_success(struct subnet_record *sub
         * the first WORKGROUP<0x1b> name.
         */
 
-       if(answers->rdata != NULL) {
+       if (answers->rdlength > 0) {
                char *p = answers->rdata;
                int numnames = CVAL(p, 0);
 
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 5bf430d..ce1c1d8 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -4432,6 +4432,7 @@ static int process_usershare_file(const char *dir_name, 
const char *file_name, i
        /* This must be a regular file, not a symlink, directory or
           other strange filetype. */
        if (!check_usershare_stat(fname, &sbuf)) {
+               close(fd);
                goto out;
        }
 
diff --git a/source3/passdb/pdb_smbpasswd.c b/source3/passdb/pdb_smbpasswd.c
index 0703ea4..83785c6 100644
--- a/source3/passdb/pdb_smbpasswd.c
+++ b/source3/passdb/pdb_smbpasswd.c
@@ -737,7 +737,8 @@ static bool mod_smbfilepwd_entry(struct smbpasswd_privates 
*smbpasswd_state, con
        fstring user_name;
 
        char *status;
-       char linebuf[256];
+#define LINEBUF_SIZE 255
+       char linebuf[LINEBUF_SIZE + 1];
        char readbuf[1024];
        int c;
        fstring ascii_p16;
@@ -792,7 +793,7 @@ static bool mod_smbfilepwd_entry(struct smbpasswd_privates 
*smbpasswd_state, con
 
                linebuf[0] = '\0';
 
-               status = fgets(linebuf, sizeof(linebuf), fp);
+               status = fgets(linebuf, LINEBUF_SIZE, fp);
                if (status == NULL && ferror(fp)) {
                        pw_file_unlock(lockfd, 
&smbpasswd_state->pw_file_lock_depth);
                        fclose(fp);
@@ -1021,7 +1022,7 @@ This is no longer supported.!\n", pwd->smb_name));
        dump_data(100, (uint8 *)ascii_p16, wr_len);
 #endif
 
-       if(wr_len > sizeof(linebuf)) {
+       if(wr_len > LINEBUF_SIZE) {
                DEBUG(0, ("mod_smbfilepwd_entry: line to write (%d) is too 
long.\n", wr_len+1));
                pw_file_unlock(lockfd,&smbpasswd_state->pw_file_lock_depth);
                fclose(fp);
diff --git a/source3/rpc_server/lsasd.c b/source3/rpc_server/lsasd.c
index a1ac49a..72ad785 100644
--- a/source3/rpc_server/lsasd.c
+++ b/source3/rpc_server/lsasd.c
@@ -598,7 +598,7 @@ static bool lsasd_create_sockets(struct tevent_context 
*ev_ctx,
        TALLOC_CTX *tmp_ctx;
        NTSTATUS status;
        uint32_t i;
-       int fd;
+       int fd = -1;
        int rc;
        bool ok = true;
 
@@ -641,8 +641,6 @@ static bool lsasd_create_sockets(struct tevent_context 
*ev_ctx,
                ok = false;
                goto done;
        }
-       listen_fd[*listen_fd_size] = fd;
-       (*listen_fd_size)++;
 
        rc = listen(fd, pf_lsasd_cfg.max_allowed_clients);
        if (rc == -1) {
@@ -651,14 +649,14 @@ static bool lsasd_create_sockets(struct tevent_context 
*ev_ctx,
                ok = false;
                goto done;
        }
+       listen_fd[*listen_fd_size] = fd;
+       (*listen_fd_size)++;
 
        fd = create_named_pipe_socket("lsass");
        if (fd < 0) {
                ok = false;
                goto done;
        }
-       listen_fd[*listen_fd_size] = fd;
-       (*listen_fd_size)++;
 
        rc = listen(fd, pf_lsasd_cfg.max_allowed_clients);
        if (rc == -1) {
@@ -667,14 +665,14 @@ static bool lsasd_create_sockets(struct tevent_context 
*ev_ctx,
                ok = false;
                goto done;
        }
+       listen_fd[*listen_fd_size] = fd;
+       (*listen_fd_size)++;
 
        fd = create_dcerpc_ncalrpc_socket("lsarpc");
        if (fd < 0) {
                ok = false;
                goto done;
        }
-       listen_fd[*listen_fd_size] = fd;
-       (*listen_fd_size)++;
 
        rc = listen(fd, pf_lsasd_cfg.max_allowed_clients);
        if (rc == -1) {
@@ -683,6 +681,9 @@ static bool lsasd_create_sockets(struct tevent_context 
*ev_ctx,
                ok = false;
                goto done;
        }
+       listen_fd[*listen_fd_size] = fd;
+       (*listen_fd_size)++;
+       fd = -1;
 
        v = dcerpc_binding_vector_dup(tmp_ctx, v_orig);
        if (v == NULL) {
@@ -735,8 +736,6 @@ static bool lsasd_create_sockets(struct tevent_context 
*ev_ctx,
                ok = false;
                goto done;
        }
-       listen_fd[*listen_fd_size] = fd;
-       (*listen_fd_size)++;
 
        rc = listen(fd, pf_lsasd_cfg.max_allowed_clients);
        if (rc == -1) {
@@ -745,6 +744,9 @@ static bool lsasd_create_sockets(struct tevent_context 
*ev_ctx,
                ok = false;
                goto done;
        }
+       listen_fd[*listen_fd_size] = fd;
+       (*listen_fd_size)++;
+       fd = -1;
 
        v = dcerpc_binding_vector_dup(tmp_ctx, v_orig);
        if (v == NULL) {
@@ -797,16 +799,18 @@ static bool lsasd_create_sockets(struct tevent_context 
*ev_ctx,
                ok = false;
                goto done;
        }
-       listen_fd[*listen_fd_size] = fd;
-       (*listen_fd_size)++;
 
        rc = listen(fd, pf_lsasd_cfg.max_allowed_clients);
        if (rc == -1) {
                DEBUG(0, ("Failed to listen on netlogon ncalrpc - %s\n",
                          strerror(errno)));
+               close(fd);
                ok = false;
                goto done;
        }
+       listen_fd[*listen_fd_size] = fd;
+       (*listen_fd_size)++;
+       fd = -1;
 
        v = dcerpc_binding_vector_dup(tmp_ctx, v_orig);
        if (v == NULL) {
@@ -838,6 +842,9 @@ static bool lsasd_create_sockets(struct tevent_context 
*ev_ctx,
        }
 
 done:
+       if (fd != -1) {
+               close(fd);
+       }
        talloc_free(tmp_ctx);
        return ok;
 }
diff --git a/source3/rpc_server/rpc_sock_helper.c 
b/source3/rpc_server/rpc_sock_helper.c
index 198df90..dc88f25 100644
--- a/source3/rpc_server/rpc_sock_helper.c
+++ b/source3/rpc_server/rpc_sock_helper.c
@@ -63,6 +63,9 @@ NTSTATUS rpc_create_tcpip_sockets(const struct 
ndr_interface_table *iface,
                        fd = create_tcpip_socket(ifss, &p);
                        if (fd < 0 || p == 0) {
                                status = NT_STATUS_UNSUCCESSFUL;
+                               if (fd != -1) {
+                                       close(fd);
+                               }
                                goto done;
                        }
                        listen_fd[*listen_fd_size] = fd;
@@ -124,6 +127,9 @@ NTSTATUS rpc_create_tcpip_sockets(const struct 
ndr_interface_table *iface,
                        fd = create_tcpip_socket(&ss, &p);
                        if (fd < 0 || p == 0) {
                                status = NT_STATUS_UNSUCCESSFUL;
+                               if (fd != -1) {
+                                       close(fd);
+                               }
                                goto done;
                        }
                        listen_fd[*listen_fd_size] = fd;
diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c 
b/source3/rpc_server/spoolss/srv_spoolss_nt.c
index ef203d8..891f429 100644
--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
@@ -4867,8 +4867,10 @@ static WERROR string_array_from_driver_info(TALLOC_CTX 
*mem_ctx,
                             &array, &num_strings);
        }
 
-       if (presult) {
+       if (presult != NULL) {
                *presult = array;
+       } else {
+               talloc_free(array);
        }
 
        return WERR_OK;
diff --git a/source3/smbd/lanman.c b/source3/smbd/lanman.c
index d54e1d5..b5598a4 100644
--- a/source3/smbd/lanman.c
+++ b/source3/smbd/lanman.c
@@ -1159,8 +1159,8 @@ static bool api_DosPrintQEnum(struct 
smbd_server_connection *sconn,
                }
        }
 
-       SAFE_FREE(subcntarr);
  out:
+       SAFE_FREE(subcntarr);
        *rdata_len = desc.usedlen;
        *rparam_len = 8;
        *rparam = smb_realloc_limit(*rparam,*rparam_len);
diff --git a/source3/torture/torture.c b/source3/torture/torture.c
index db18825..93b9cfd 100644
--- a/source3/torture/torture.c
+++ b/source3/torture/torture.c
@@ -3101,6 +3101,9 @@ static bool run_randomipc(int dummy)
                correct = False;
        }
 
+       SAFE_FREE(rparam);
+       SAFE_FREE(rdata);
+
        printf("finished random ipc test\n");
 


-- 
Samba Shared Repository

Reply via email to