[SCM] Samba Shared Repository - branch v4-6-test updated

Karolin Seeger kseeger at samba.org
Thu Mar 2 12:07:02 UTC 2017


The branch, v4-6-test has been updated
       via  7a29fe4 s3:winbind: work around coverity false positive.
       via  d4ac505 ctdb: Fix posible NULL deref in logging_init()
       via  002bfb9 s3:librpc: Fix OM_uint32 comparsion in if-clause
       via  7dddc61 s3:librpc: Make sure kt_curser and kt_entry are initialized
       via  3e5207d pam_winbind: Return if we do not have a domain
       via  efeb8b3 s3:lib: Do not segfault if username is NULL
       via  17463ee s3:torture: Fix uint64_t comparsion in if-clause
       via  f34ff6a s4:torture: Make sure handles are initialized
       via  33fdd9f ndrdump: Fix a possible NULL pointer dereference
       via  c240402 s3-vfs: Do not deref a NULL pointer in shadow_copy2_snapshot_to_gmt()
       via  c563d22 s4-kcc: Do not dereference a NULL pointer
       via  2281afd s4-torture: Use the correct variable type in torture_smb2_maxfid()
      from  f50fa9f VERSION: Bump version up to 4.6.0rc5...

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-6-test


- Log -----------------------------------------------------------------
commit 7a29fe42da4365e54cb46c6b82eb936c1412d6f4
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Feb 23 09:41:03 2017 -0800

    s3:winbind: work around coverity false positive.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Thu Feb 23 23:54:48 CET 2017 on sn-devel-144
    
    (cherry picked from commit 2e09407c5b992db0da5ca3a6d1f38341dc42d070)
    
    Autobuild-User(v4-6-test): Karolin Seeger <kseeger at samba.org>
    Autobuild-Date(v4-6-test): Thu Mar  2 13:06:40 CET 2017 on sn-devel-144

commit d4ac5058958cfdadfce9d298d201a0dcb66cd611
Author: Andreas Schneider <asn at samba.org>
Date:   Thu Feb 16 17:38:41 2017 +0100

    ctdb: Fix posible NULL deref in logging_init()
    
    Found by covscan.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12592
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 08e03fa7f5fdc7f988fbbb26929e8c5727f36c2e)

commit 002bfb9ec4d0103c1e8d7e0e3c976d326983e8be
Author: Andreas Schneider <asn at samba.org>
Date:   Fri Feb 17 09:49:39 2017 +0100

    s3:librpc: Fix OM_uint32 comparsion in if-clause
    
    Found by covscan.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12592
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 8ac43e0e6ef9236a5c6d2c27ebe24171582c1d49)

commit 7dddc614fab21bd54214cada5320f899a26bd960
Author: Andreas Schneider <asn at samba.org>
Date:   Thu Feb 16 17:42:53 2017 +0100

    s3:librpc: Make sure kt_curser and kt_entry are initialized
    
    Found by covscan.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12592
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 2f83cfdb90d687673cfc4be14cd66425fb7f3e76)

commit 3e5207d9f1cb07e13fd6ade7f51e22d25bfe6c86
Author: Andreas Schneider <asn at samba.org>
Date:   Fri Feb 17 11:53:52 2017 +0100

    pam_winbind: Return if we do not have a domain
    
    Found by covscan.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12592
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 1df1d873c849f68a91d067c7049dda12c22e98c5)

commit efeb8b3a272c1b5190283682a0e74e426b7ccefd
Author: Andreas Schneider <asn at samba.org>
Date:   Fri Feb 17 10:08:17 2017 +0100

    s3:lib: Do not segfault if username is NULL
    
    Found by covscan.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12592
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 9297ac44f7e0455bb74ee77ad8b68f2e8c4a070d)

commit 17463ee527cf1245704a448765f4bd89564ce961
Author: Andreas Schneider <asn at samba.org>
Date:   Fri Feb 17 09:45:33 2017 +0100

    s3:torture: Fix uint64_t comparsion in if-clause
    
    Found by covscan.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12592
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 13690569ee5893e3dbd96f2b28a41a35e3da42ff)

commit f34ff6ae9ef97ce9338ce192cc16753bdbdc503d
Author: Andreas Schneider <asn at samba.org>
Date:   Thu Feb 16 17:52:41 2017 +0100

    s4:torture: Make sure handles are initialized
    
    The CHECK_STATUS macro might goto done which checks the values of the
    handle so they should be initialized in this case.
    
    Found by covscan.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12592
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 8a1b998acb3592ad67bb72db79965bae436748ec)

commit 33fdd9f52a4045347c273a0ce8ba1d207e06772a
Author: Andreas Schneider <asn at samba.org>
Date:   Thu Feb 16 17:34:07 2017 +0100

    ndrdump: Fix a possible NULL pointer dereference
    
    Found by covscan.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12592
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 79a49dc19a83bd22684a71aecf4588b753669039)

commit c2404026ec5a299e2f7f93337c633934e0253d23
Author: Andreas Schneider <asn at samba.org>
Date:   Thu Feb 16 17:15:38 2017 +0100

    s3-vfs: Do not deref a NULL pointer in shadow_copy2_snapshot_to_gmt()
    
    Found by covscan.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12592
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit e6105f92cd24de49acecd67a9f0c2c53323fe2e9)

commit c563d224a31059bb7f0f4af98a7afd6aeb09e4d3
Author: Andreas Schneider <asn at samba.org>
Date:   Thu Feb 16 17:08:50 2017 +0100

    s4-kcc: Do not dereference a NULL pointer
    
    Found by covscan.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12592
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 67b978bb26b3d0009b511bb2ae96d249041827a5)

commit 2281afdefc7e9700d31c82c78a34f7887e65ca36
Author: Andreas Schneider <asn at samba.org>
Date:   Thu Feb 16 17:07:54 2017 +0100

    s4-torture: Use the correct variable type in torture_smb2_maxfid()
    
    Found by covscan.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12592
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 1daea6b0f848b2434c65dc90d7fe514242c78786)

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

Summary of changes:
 ctdb/common/logging.c                         |  7 +++++++
 librpc/tools/ndrdump.c                        |  4 ++++
 nsswitch/pam_winbind.c                        | 10 +++++++---
 source3/lib/util_cmdline.c                    |  5 ++++-
 source3/librpc/crypto/gse.c                   |  2 +-
 source3/librpc/crypto/gse_krb5.c              |  7 ++-----
 source3/modules/vfs_shadow_copy2.c            |  3 +++
 source3/torture/torture.c                     |  4 ++--
 source3/winbindd/winbindd_list_users.c        |  2 +-
 source4/dsdb/kcc/garbage_collect_tombstones.c |  4 +++-
 source4/torture/smb2/maxfid.c                 |  8 ++++----
 source4/torture/smb2/rename.c                 | 24 ++++++++++++++++++++++++
 12 files changed, 62 insertions(+), 18 deletions(-)


Changeset truncated at 500 lines:

diff --git a/ctdb/common/logging.c b/ctdb/common/logging.c
index 3d586bf..c8ccf26 100644
--- a/ctdb/common/logging.c
+++ b/ctdb/common/logging.c
@@ -521,7 +521,14 @@ int logging_init(TALLOC_CTX *mem_ctx, const char *logging,
 	}
 
 	name = strtok(str, ":");
+	if (name == NULL) {
+		return EINVAL;
+	}
 	option = strtok(NULL, ":");
+	/*
+	 * option can be NULL here, both setup()
+	 * backends handle this.
+	 */
 
 	for (i=0; i<ARRAY_SIZE(log_backend); i++) {
 		if (strcmp(log_backend[i].name, name) == 0) {
diff --git a/librpc/tools/ndrdump.c b/librpc/tools/ndrdump.c
index d534e3c..d8b9916 100644
--- a/librpc/tools/ndrdump.c
+++ b/librpc/tools/ndrdump.c
@@ -493,6 +493,10 @@ static void ndr_print_dummy(struct ndr_print *ndr, const char *format, ...)
 		bool differ;
 
 		ndr_v_push = ndr_push_init_ctx(mem_ctx);
+		if (ndr_v_push == NULL) {
+			printf("No memory\n");
+			exit(1);
+		}
 
 		if (assume_ndr64) {
 			ndr_v_push->flags |= LIBNDR_FLAG_NDR64;
diff --git a/nsswitch/pam_winbind.c b/nsswitch/pam_winbind.c
index b78c6bd..dca2c29 100644
--- a/nsswitch/pam_winbind.c
+++ b/nsswitch/pam_winbind.c
@@ -2479,10 +2479,14 @@ static char* winbind_upn_to_username(struct pwb_context *ctx,
 	if (!name) {
 		return NULL;
 	}
-	if ((p = strchr(name, '@')) != NULL) {
-		*p = 0;
-		domain = p + 1;
+
+	p = strchr(name, '@');
+	if (p == NULL) {
+		TALLOC_FREE(name);
+		return NULL;
 	}
+	*p = '\0';
+	domain = p + 1;
 
 	/* Convert the UPN to a SID */
 
diff --git a/source3/lib/util_cmdline.c b/source3/lib/util_cmdline.c
index 6c98b44..ad51a4f 100644
--- a/source3/lib/util_cmdline.c
+++ b/source3/lib/util_cmdline.c
@@ -112,11 +112,14 @@ void set_cmdline_auth_info_username(struct user_auth_info *auth_info,
 {
 	const char *new_val = NULL;
 
+	if (username == NULL) {
+		return;
+	}
 	cli_credentials_parse_string(auth_info->creds,
 				     username,
 				     CRED_SPECIFIED);
 	new_val = cli_credentials_get_username(auth_info->creds);
-	if (username != NULL && new_val == NULL) {
+	if (new_val == NULL) {
 		exit(ENOMEM);
 	}
 
diff --git a/source3/librpc/crypto/gse.c b/source3/librpc/crypto/gse.c
index 792700e..99971d3 100644
--- a/source3/librpc/crypto/gse.c
+++ b/source3/librpc/crypto/gse.c
@@ -347,7 +347,7 @@ static NTSTATUS gse_get_client_auth_token(TALLOC_CTX *mem_ctx,
 		break;
 	default:
 		if ((gss_maj == GSS_S_FAILURE) &&
-		    (gss_min == KRB5KRB_AP_ERR_TKT_EXPIRED)) {
+		    (gss_min == (OM_uint32)KRB5KRB_AP_ERR_TKT_EXPIRED)) {
 			DBG_NOTICE("Ticket expired\n");
 		} else {
 			DBG_ERR("gss_init_sec_context failed with [%s]\n",
diff --git a/source3/librpc/crypto/gse_krb5.c b/source3/librpc/crypto/gse_krb5.c
index 83afd16..703d1b4 100644
--- a/source3/librpc/crypto/gse_krb5.c
+++ b/source3/librpc/crypto/gse_krb5.c
@@ -359,8 +359,8 @@ static krb5_error_code fill_mem_keytab_from_system_keytab(krb5_context krbctx,
 {
 	krb5_error_code ret = 0;
 	krb5_keytab keytab = NULL;
-	krb5_kt_cursor kt_cursor;
-	krb5_keytab_entry kt_entry;
+	krb5_kt_cursor kt_cursor = { 0, };
+	krb5_keytab_entry kt_entry = { 0, };
 	char *valid_princ_formats[7] = { NULL, NULL, NULL,
 					 NULL, NULL, NULL, NULL };
 	char *entry_princ_s = NULL;
@@ -420,9 +420,6 @@ static krb5_error_code fill_mem_keytab_from_system_keytab(krb5_context krbctx,
 		goto out;
 	}
 
-	ZERO_STRUCT(kt_entry);
-	ZERO_STRUCT(kt_cursor);
-
 	ret = smb_krb5_kt_open_relative(krbctx, NULL, false, &keytab);
 	if (ret) {
 		DEBUG(1, ("smb_krb5_kt_open failed (%s)\n",
diff --git a/source3/modules/vfs_shadow_copy2.c b/source3/modules/vfs_shadow_copy2.c
index 402eb70..2afc595 100644
--- a/source3/modules/vfs_shadow_copy2.c
+++ b/source3/modules/vfs_shadow_copy2.c
@@ -1873,6 +1873,9 @@ static bool shadow_copy2_snapshot_to_gmt(vfs_handle_struct *handle,
 		}
 		/* Extract the prefix */
 		tmp = strstr(tmpstr, priv->config->delimiter);
+		if (tmp == NULL) {
+			goto done;
+		}
 		*tmp = '\0';
 
 		/* Parse regex */
diff --git a/source3/torture/torture.c b/source3/torture/torture.c
index cafc1a8..393d343 100644
--- a/source3/torture/torture.c
+++ b/source3/torture/torture.c
@@ -5066,7 +5066,7 @@ static bool run_rename_access(int dummy)
 	}
 
 	if (cli) {
-		if (fnum != -1) {
+		if (fnum != (uint64_t)-1) {
 			cli_close(cli, fnum);
 		}
 		cli_unlink(cli, src,
@@ -5457,7 +5457,7 @@ static bool run_owner_rights(int dummy)
   fail:
 
 	if (cli) {
-		if (fnum != -1) {
+		if (fnum != (uint16_t)-1) {
 			cli_close(cli, fnum);
 		}
 		cli_unlink(cli, fname,
diff --git a/source3/winbindd/winbindd_list_users.c b/source3/winbindd/winbindd_list_users.c
index 9a751a7..fcbe8be 100644
--- a/source3/winbindd/winbindd_list_users.c
+++ b/source3/winbindd/winbindd_list_users.c
@@ -178,7 +178,7 @@ NTSTATUS winbindd_list_users_recv(struct tevent_req *req,
 	response->length += len;
 	response->data.num_entries = 0;
 
-	if (len >= 1) {
+	if (result != NULL && len >= 1) {
 		len -= 1;
 		response->data.num_entries = 1;
 
diff --git a/source4/dsdb/kcc/garbage_collect_tombstones.c b/source4/dsdb/kcc/garbage_collect_tombstones.c
index 1909cfe..d8d0a59 100644
--- a/source4/dsdb/kcc/garbage_collect_tombstones.c
+++ b/source4/dsdb/kcc/garbage_collect_tombstones.c
@@ -137,7 +137,9 @@ static NTSTATUS garbage_collect_tombstones_part(TALLOC_CTX *mem_ctx,
 								   element->name);
 
 			/* This avoids parsing isDeleted as a link */
-			if (attrib->linkID == 0 || ((attrib->linkID & 1) == 1)) {
+			if (attrib == NULL ||
+			    attrib->linkID == 0 ||
+			    ((attrib->linkID & 1) == 1)) {
 				continue;
 			}
 
diff --git a/source4/torture/smb2/maxfid.c b/source4/torture/smb2/maxfid.c
index cfdf7c1..dbe3fac 100644
--- a/source4/torture/smb2/maxfid.c
+++ b/source4/torture/smb2/maxfid.c
@@ -32,7 +32,7 @@ bool torture_smb2_maxfid(struct torture_context *tctx)
 	NTSTATUS status;
 	struct smb2_tree *tree = NULL;
 	const char *dname = "smb2_maxfid";
-	int i, maxfid;
+	size_t i, maxfid;
 	struct smb2_handle *handles,  dir_handle = { };
 	size_t max_handles;
 
@@ -62,7 +62,7 @@ bool torture_smb2_maxfid(struct torture_context *tctx)
 		struct smb2_create create = { };
 		struct smb2_close close = { };
 
-		name = talloc_asprintf(tctx, "%s\\%d", dname, i / 1000);
+		name = talloc_asprintf(tctx, "%s\\%zu", dname, i / 1000);
 		torture_assert_goto(tctx, (name != NULL), ret, done,
 				    "no memory for directory name\n");
 
@@ -93,7 +93,7 @@ bool torture_smb2_maxfid(struct torture_context *tctx)
 		char *name;
 		struct smb2_create create = { };
 
-		name = talloc_asprintf(tctx, "%s\\%d\\%d", dname, i / 1000, i);
+		name = talloc_asprintf(tctx, "%s\\%zu\\%zu", dname, i / 1000, i);
 		torture_assert_goto(tctx, (name != NULL), ret, done,
 				    "no memory for file name\n");
 
@@ -120,7 +120,7 @@ bool torture_smb2_maxfid(struct torture_context *tctx)
 
 	maxfid = i;
 	if (maxfid == max_handles) {
-		torture_comment(tctx, "Reached test limit of %d open files. "
+		torture_comment(tctx, "Reached test limit of %zu open files. "
 				"Adjust to higher test with "
 				"--option=torture:maxopenfiles=NNN\n", maxfid);
 	}
diff --git a/source4/torture/smb2/rename.c b/source4/torture/smb2/rename.c
index 1a490f3..9652643 100644
--- a/source4/torture/smb2/rename.c
+++ b/source4/torture/smb2/rename.c
@@ -57,6 +57,8 @@ static bool torture_smb2_rename_simple(struct torture_context *torture,
 	union smb_fileinfo fi;
 	struct smb2_handle h1;
 
+	ZERO_STRUCT(h1);
+
 	smb2_deltree(tree1, BASEDIR);
 	smb2_util_rmdir(tree1, BASEDIR);
 
@@ -145,6 +147,8 @@ static bool torture_smb2_rename_simple2(struct torture_context *torture,
 	union smb_setfileinfo sinfo;
 	struct smb2_handle h1;
 
+	ZERO_STRUCT(h1);
+
 	smb2_deltree(tree1, BASEDIR);
 	smb2_util_rmdir(tree1, BASEDIR);
 
@@ -226,6 +230,8 @@ static bool torture_smb2_rename_no_sharemode(struct torture_context *torture,
 	union smb_fileinfo fi;
 	struct smb2_handle h1;
 
+	ZERO_STRUCT(h1);
+
 	smb2_deltree(tree1, BASEDIR);
 	smb2_util_rmdir(tree1, BASEDIR);
 
@@ -314,6 +320,9 @@ static bool torture_smb2_rename_with_delete_access(struct torture_context *tortu
 	union smb_setfileinfo sinfo;
 	struct smb2_handle fh, dh;
 
+	ZERO_STRUCT(fh);
+	ZERO_STRUCT(dh);
+
 	smb2_deltree(tree1, BASEDIR);
 	smb2_util_rmdir(tree1, BASEDIR);
 
@@ -439,6 +448,9 @@ static bool torture_smb2_rename_with_delete_access2(struct torture_context *tort
 	union smb_setfileinfo sinfo;
 	struct smb2_handle fh, dh;
 
+	ZERO_STRUCT(fh);
+	ZERO_STRUCT(dh);
+
 	smb2_deltree(tree1, BASEDIR);
 	smb2_util_rmdir(tree1, BASEDIR);
 
@@ -563,6 +575,9 @@ static bool torture_smb2_rename_no_delete_access(struct torture_context *torture
 	union smb_fileinfo fi;
 	struct smb2_handle fh, dh;
 
+	ZERO_STRUCT(fh);
+	ZERO_STRUCT(dh);
+
 	smb2_deltree(tree1, BASEDIR);
 	smb2_util_rmdir(tree1, BASEDIR);
 
@@ -697,6 +712,9 @@ static bool torture_smb2_rename_no_delete_access2(struct torture_context *tortur
 	union smb_setfileinfo sinfo;
 	struct smb2_handle fh, dh;
 
+	ZERO_STRUCT(fh);
+	ZERO_STRUCT(dh);
+
 	smb2_deltree(tree1, BASEDIR);
 	smb2_util_rmdir(tree1, BASEDIR);
 
@@ -820,6 +838,9 @@ static bool torture_smb2_rename_msword(struct torture_context *torture,
 	union smb_fileinfo fi;
 	struct smb2_handle fh, dh;
 
+	ZERO_STRUCT(fh);
+	ZERO_STRUCT(dh);
+
 	smb2_deltree(tree1, BASEDIR);
 	smb2_util_rmdir(tree1, BASEDIR);
 
@@ -938,6 +959,9 @@ static bool torture_smb2_rename_dir_openfile(struct torture_context *torture,
 	union smb_setfileinfo sinfo;
 	struct smb2_handle d1, h1;
 
+	ZERO_STRUCT(d1);
+	ZERO_STRUCT(h1);
+
 	smb2_deltree(tree1, BASEDIR);
 	smb2_util_rmdir(tree1, BASEDIR);
 


-- 
Samba Shared Repository



More information about the samba-cvs mailing list