[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-2748-gc46e10d

Volker Lendecke vlendec at samba.org
Sat Jun 7 07:04:01 GMT 2008


The branch, v3-3-test has been updated
       via  c46e10d2605b22d31675976e62e5ae61d73c8a0a (commit)
       via  0f52dc3f7eae7e87b8a71bd099b99b0b3e76a387 (commit)
       via  a551773e34af1c118f77784a285e1b885da8655d (commit)
       via  2663c81a782fd4394a9feaaaa987c7f6d38ca5da (commit)
      from  2a689aa66af1de3d2e0d08b51e33e9a7015d6cb7 (commit)

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


- Log -----------------------------------------------------------------
commit c46e10d2605b22d31675976e62e5ae61d73c8a0a
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Jun 7 09:04:03 2008 +0200

    Add STREAMINFO op to vfs_full_audit
    
    Fix Coverity ID 552 and 553

commit 0f52dc3f7eae7e87b8a71bd099b99b0b3e76a387
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Jun 7 08:51:35 2008 +0200

    Fix a memleak in secrets_fetch_afs_key
    
    Coverity ID 570

commit a551773e34af1c118f77784a285e1b885da8655d
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Jun 7 08:50:02 2008 +0200

    Fix a memleak in secrets_fetch_trust_account_password_legacy
    
    Coverity ID 571

commit 2663c81a782fd4394a9feaaaa987c7f6d38ca5da
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Jun 7 08:48:13 2008 +0200

    Fix a memleak in fetch_ldap_pw
    
    Fix Coverity ID 572, also fix the error check for secrets_fetch failing

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

Summary of changes:
 source/include/vfs_macros.h     |    2 +-
 source/modules/vfs_full_audit.c |   27 +++++++++++++++++++++++++++
 source/passdb/secrets.c         |    6 +++++-
 3 files changed, 33 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/include/vfs_macros.h b/source/include/vfs_macros.h
index bb3aeba..db78957 100644
--- a/source/include/vfs_macros.h
+++ b/source/include/vfs_macros.h
@@ -334,7 +334,7 @@
 #define SMB_VFS_NEXT_NOTIFY_WATCH(conn, ctx, e, callback, private_data, handle_p) ((conn)->vfs_next.ops.notify_watch((conn)->vfs_next.handles.notify_watch, (ctx), (e), (callback), (private_data), (handle_p)))
 #define SMB_VFS_NEXT_CHFLAGS(handle, path, flags) ((handle)->vfs_next.ops.chflags((handle)->vfs_next.handles.chflags, (path), (flags)))
 #define SMB_VFS_NEXT_FILE_ID_CREATE(handle, dev, inode) ((handle)->vfs_next.ops.file_id_create((handle)->vfs_next.handles.file_id_create, (dev), (inode)))
-#define SMB_VFS_NEXT_STREAMINFO(handle, fsp, fname, mem_ctx, num_streams, streams) ((handle)->vfs.ops.streaminfo((handle)->vfs.handles.streaminfo, (fsp), (fname), (mem_ctx), (num_streams), (streams)))
+#define SMB_VFS_NEXT_STREAMINFO(handle, fsp, fname, mem_ctx, num_streams, streams) ((handle)->vfs_next.ops.streaminfo((handle)->vfs_next.handles.streaminfo, (fsp), (fname), (mem_ctx), (num_streams), (streams)))
 
 /* NT ACL operations. */
 #define SMB_VFS_NEXT_FGET_NT_ACL(handle, fsp, security_info, ppdesc) ((handle)->vfs_next.ops.fget_nt_acl((handle)->vfs_next.handles.fget_nt_acl, (fsp), (security_info), (ppdesc)))
diff --git a/source/modules/vfs_full_audit.c b/source/modules/vfs_full_audit.c
index 8718dbd..3005de3 100644
--- a/source/modules/vfs_full_audit.c
+++ b/source/modules/vfs_full_audit.c
@@ -188,6 +188,12 @@ static int smb_full_audit_chflags(vfs_handle_struct *handle,
 			    const char *path, unsigned int flags);
 static struct file_id smb_full_audit_file_id_create(struct vfs_handle_struct *handle,
 						    SMB_DEV_T dev, SMB_INO_T inode);
+static NTSTATUS smb_full_audit_streaminfo(vfs_handle_struct *handle,
+					  struct files_struct *fsp,
+					  const char *fname,
+					  TALLOC_CTX *mem_ctx,
+					  unsigned int *pnum_streams,
+					  struct stream_struct **pstreams);
 static NTSTATUS smb_full_audit_fget_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
 				uint32 security_info,
 				SEC_DESC **ppdesc);
@@ -417,6 +423,8 @@ static vfs_op_tuple audit_op_tuples[] = {
 	 SMB_VFS_LAYER_LOGGER},
 	{SMB_VFS_OP(smb_full_audit_file_id_create),	SMB_VFS_OP_FILE_ID_CREATE,
 	 SMB_VFS_LAYER_LOGGER},
+	{SMB_VFS_OP(smb_full_audit_streaminfo),	SMB_VFS_OP_STREAMINFO,
+	 SMB_VFS_LAYER_LOGGER},
 
 	/* NT ACL operations. */
 
@@ -583,6 +591,7 @@ static struct {
 	{ SMB_VFS_OP_NOTIFY_WATCH, "notify_watch" },
 	{ SMB_VFS_OP_CHFLAGS,	"chflags" },
 	{ SMB_VFS_OP_FILE_ID_CREATE,	"file_id_create" },
+	{ SMB_VFS_OP_STREAMINFO,	"streaminfo" },
 	{ SMB_VFS_OP_FGET_NT_ACL,	"fget_nt_acl" },
 	{ SMB_VFS_OP_GET_NT_ACL,	"get_nt_acl" },
 	{ SMB_VFS_OP_FSET_NT_ACL,	"fset_nt_acl" },
@@ -1523,6 +1532,24 @@ static struct file_id smb_full_audit_file_id_create(struct vfs_handle_struct *ha
 	return result;
 }
 
+static NTSTATUS smb_full_audit_streaminfo(vfs_handle_struct *handle,
+					  struct files_struct *fsp,
+					  const char *fname,
+					  TALLOC_CTX *mem_ctx,
+					  unsigned int *pnum_streams,
+					  struct stream_struct **pstreams)
+{
+	NTSTATUS result;
+
+	result = SMB_VFS_NEXT_STREAMINFO(handle, fsp, fname, mem_ctx,
+					 pnum_streams, pstreams);
+
+	do_log(SMB_VFS_OP_STREAMINFO, NT_STATUS_IS_OK(result), handle,
+	       "%s", fname);
+
+	return result;
+}
+
 static NTSTATUS smb_full_audit_fget_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
 				uint32 security_info,
 				SEC_DESC **ppdesc)
diff --git a/source/passdb/secrets.c b/source/passdb/secrets.c
index a7223b7..fc01aa1 100644
--- a/source/passdb/secrets.c
+++ b/source/passdb/secrets.c
@@ -399,6 +399,7 @@ bool secrets_fetch_trust_account_password_legacy(const char *domain,
 
 	if (size != sizeof(*pass)) {
 		DEBUG(0, ("secrets were of incorrect size!\n"));
+		SAFE_FREE(pass);
 		return False;
 	}
 
@@ -884,10 +885,11 @@ bool fetch_ldap_pw(char **dn, char** pw)
 			if (*p == ',') *p = '/';
 
 		data=(char *)secrets_fetch(old_style_key, &size);
-		if (!size && size < sizeof(old_style_pw)) {
+		if ((data == NULL) || (size < sizeof(old_style_pw))) {
 			DEBUG(0,("fetch_ldap_pw: neither ldap secret retrieved!\n"));
 			SAFE_FREE(old_style_key);
 			SAFE_FREE(*dn);
+			SAFE_FREE(data);
 			return False;
 		}
 
@@ -1061,6 +1063,8 @@ bool secrets_fetch_afs_key(const char *cell, struct afs_key *result)
 
 	result->kvno = ntohl(result->kvno);
 
+	SAFE_FREE(keyfile);
+
 	return True;
 }
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list