[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Mon Aug 13 20:36:02 UTC 2018
The branch, master has been updated
via a98f09a selftest: Load time_audit and full_audit modules for all tests
via 4909b96 s3: vfs: time_audit: fix handling of token_blob in smb_time_audit_offload_read_recv()
via 4c0b49b s3:winbind: Fix memory leak in nss_init()
from 3e6ce5c s3:registry: Fix possible memory leak in _reg_perfcount_multi_sz_from_tdb()
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit a98f09a09db2fc7be85f9171b586e65344a39e92
Author: Christof Schmitt <cs at samba.org>
Date: Fri Aug 10 10:38:28 2018 -0700
selftest: Load time_audit and full_audit modules for all tests
Previously the only test was to load these modules to trigger the
smb_vfs_assert_all_fns check. As these modules just pass through the
calls, they can be loaded for all tests to ensure that the codepaths are
exercised. This would have found the problem in
smb_time_audit_offload_read_recv.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13568
Signed-off-by: Christof Schmitt <cs at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
Autobuild-User(master): Jeremy Allison <jra at samba.org>
Autobuild-Date(master): Mon Aug 13 22:35:20 CEST 2018 on sn-devel-144
commit 4909b966050c921b0a6a32285fee55f5f14dc3ff
Author: Ralph Wuerthner <ralph.wuerthner at de.ibm.com>
Date: Wed Aug 8 17:42:18 2018 +0200
s3: vfs: time_audit: fix handling of token_blob in smb_time_audit_offload_read_recv()
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13568
Signed-off-by: Ralph Wuerthner <ralph.wuerthner at de.ibm.com>
Reviewed-by: Christof Schmitt <cs at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 4c0b49b3f982a3a3013a3b6fef3c10b1ca7d2ab0
Author: Andreas Schneider <asn at samba.org>
Date: Thu Aug 9 16:38:49 2018 +0200
s3:winbind: Fix memory leak in nss_init()
Found by covscan.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13567
Pair-Programmed-With: Justin Stephenson <jstephen at redhat.com>
Signed-off-by: Andreas Schneider <asn at samba.org>
Signed-off-by: Justin Stephenson <jstephen at redhat.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
-----------------------------------------------------------------------
Summary of changes:
selftest/target/Samba3.pm | 12 ++++++------
source3/modules/vfs_time_audit.c | 12 +++---------
source3/winbindd/nss_info.c | 26 ++++++++++++++++++--------
3 files changed, 27 insertions(+), 23 deletions(-)
Changeset truncated at 500 lines:
diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
index 447c1e8..d90c8f7 100755
--- a/selftest/target/Samba3.pm
+++ b/selftest/target/Samba3.pm
@@ -762,14 +762,10 @@ sub setup_simpleserver
my $simpleserver_options = "
lanman auth = yes
ntlm auth = yes
- vfs objects = xattr_tdb streams_depot time_audit full_audit
+ vfs objects = xattr_tdb streams_depot
change notify = no
smb encrypt = off
- full_audit:syslog = no
- full_audit:success = none
- full_audit:failure = none
-
[vfs_aio_pthread]
path = $prefix_abs/share
read only = no
@@ -1766,7 +1762,11 @@ sub provision($$$$$$$$$)
dos filemode = yes
strict rename = yes
strict sync = yes
- vfs objects = acl_xattr fake_acls xattr_tdb streams_depot
+ vfs objects = acl_xattr fake_acls xattr_tdb streams_depot time_audit full_audit
+
+ full_audit:syslog = no
+ full_audit:success = none
+ full_audit:failure = none
printing = vlp
print command = $bindir_abs/vlp tdbfile=$lockdir/vlp.tdb print %p %s
diff --git a/source3/modules/vfs_time_audit.c b/source3/modules/vfs_time_audit.c
index 64e1f5d..aefea33 100644
--- a/source3/modules/vfs_time_audit.c
+++ b/source3/modules/vfs_time_audit.c
@@ -1988,13 +1988,12 @@ static NTSTATUS smb_time_audit_offload_read_recv(
struct tevent_req *req,
struct vfs_handle_struct *handle,
TALLOC_CTX *mem_ctx,
- DATA_BLOB *_token_blob)
+ DATA_BLOB *token_blob)
{
struct time_audit_offload_read_state *state = tevent_req_data(
req, struct time_audit_offload_read_state);
struct timespec ts_recv;
double timediff;
- DATA_BLOB token_blob;
NTSTATUS status;
clock_gettime_mono(&ts_recv);
@@ -2008,13 +2007,8 @@ static NTSTATUS smb_time_audit_offload_read_recv(
return status;
}
- token_blob = data_blob_talloc(mem_ctx,
- state->token_blob.data,
- state->token_blob.length);
- if (token_blob.data == NULL) {
- tevent_req_received(req);
- return NT_STATUS_NO_MEMORY;
- }
+ token_blob->length = state->token_blob.length;
+ token_blob->data = talloc_move(mem_ctx, &state->token_blob.data);
tevent_req_received(req);
return NT_STATUS_OK;
diff --git a/source3/winbindd/nss_info.c b/source3/winbindd/nss_info.c
index 473b1a3..1a8325c 100644
--- a/source3/winbindd/nss_info.c
+++ b/source3/winbindd/nss_info.c
@@ -84,7 +84,10 @@ static struct nss_function_entry *nss_get_backend(const char *name )
/********************************************************************
*******************************************************************/
-static bool parse_nss_parm( const char *config, char **backend, char **domain )
+static bool parse_nss_parm(TALLOC_CTX *mem_ctx,
+ const char *config,
+ char **backend,
+ char **domain)
{
char *p;
@@ -98,17 +101,17 @@ static bool parse_nss_parm( const char *config, char **backend, char **domain )
/* if no : then the string must be the backend name only */
if ( !p ) {
- *backend = SMB_STRDUP( config );
+ *backend = talloc_strdup(mem_ctx, config);
return (*backend != NULL);
}
/* split the string and return the two parts */
if ( strlen(p+1) > 0 ) {
- *domain = SMB_STRDUP( p+1 );
+ *domain = talloc_strdup(mem_ctx, p + 1);
}
- *backend = SMB_STRNDUP(config, PTR_DIFF(p, config));
+ *backend = talloc_strndup(mem_ctx, config, PTR_DIFF(p, config));
return (*backend != NULL);
}
@@ -158,8 +161,9 @@ static NTSTATUS nss_init(const char **nss_list)
NTSTATUS status;
static bool nss_initialized = false;
int i;
- char *backend, *domain;
+ char *backend = NULL, *domain = NULL;
struct nss_function_entry *nss_backend;
+ TALLOC_CTX *frame;
/* check for previous successful initializations */
@@ -167,6 +171,8 @@ static NTSTATUS nss_init(const char **nss_list)
return NT_STATUS_OK;
}
+ frame = talloc_stackframe();
+
/* The "template" backend should always be registered as it
is a static module */
@@ -179,8 +185,10 @@ static NTSTATUS nss_init(const char **nss_list)
as necessary) */
for ( i=0; nss_list && nss_list[i]; i++ ) {
+ bool ok;
- if ( !parse_nss_parm(nss_list[i], &backend, &domain) ) {
+ ok = parse_nss_parm(frame, nss_list[i], &backend, &domain);
+ if (!ok) {
DEBUG(0,("nss_init: failed to parse \"%s\"!\n",
nss_list[i]));
continue;
@@ -238,10 +246,11 @@ static NTSTATUS nss_init(const char **nss_list)
/* cleanup */
- SAFE_FREE( backend );
- SAFE_FREE( domain );
+ TALLOC_FREE(domain);
+ TALLOC_FREE(backend);
}
+
if ( !nss_domain_list ) {
DEBUG(3,("nss_init: no nss backends configured. "
"Defaulting to \"template\".\n"));
@@ -252,6 +261,7 @@ static NTSTATUS nss_init(const char **nss_list)
nss_initialized = true;
+ TALLOC_FREE(frame);
return NT_STATUS_OK;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list