[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Sun Aug 18 19:11:03 MDT 2013


The branch, master has been updated
       via  02618cc rpc_server: Fix CID 1063255 Resource leak
       via  980c757 gensec: Fix CID 1063258 Uninitialized scalar variable
       via  2055ce1 registry4: Fix CID 1034911 Dereference before null check
       via  cc983c9 smbd: Fix CID 1063259 Uninitialized scalar variable
       via  cb598dd ldb_map: Fix CID 1034791 Dereference null return value
       via  cbb5c1c pyldb: Fix CID 1034792 Dereference null return value
       via  15bd8255 ldb: Fix CID 1034793 Dereference null return value
       via  6417d9e samdb: Fix CID 1034910 Dereference before null check
       via  8c4e6f0 samdb: Fix CID 1034910 Dereference before null check
       via  35330aa samdb: Fix CID 1034910 Dereference before null check
       via  f82daa0 registry4: Fix CID 1034911 Dereference before null check
       via  817e0ae log2pcaphex: Fix nonempty line endings
      from  0627350 ldb: Fix a const warning

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


- Log -----------------------------------------------------------------
commit 02618cc58a49864bd0bf280d9f13a7f39fcf9658
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Aug 18 20:41:51 2013 +0000

    rpc_server: Fix CID 1063255 Resource leak
    
    We would leak a socket 0 here
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date(master): Mon Aug 19 03:10:51 CEST 2013 on sn-devel-104

commit 980c757388b9cd3a376cf45fc98b01c65124c6a5
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Aug 18 20:37:26 2013 +0000

    gensec: Fix CID 1063258 Uninitialized scalar variable
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 2055ce1dbe94a7f02497e72652a58736ff1cf2e0
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Aug 18 19:34:35 2013 +0000

    registry4: Fix CID 1034911 Dereference before null check
    
    curbegin is always != NULL here (curend + 1) and is dereferenced by
    strchr.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit cc983c9a6a92f3d127ec6461b15aed3fa90e6d30
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Aug 18 20:35:32 2013 +0000

    smbd: Fix CID 1063259 Uninitialized scalar variable
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit cb598ddab6935820975042a8a307c75dba9d7e31
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Aug 18 19:54:31 2013 +0000

    ldb_map: Fix CID 1034791 Dereference null return value
    
    Add NULL checks
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit cbb5c1ce39640ffd01aeed6d87a57940e344792c
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Aug 18 19:51:49 2013 +0000

    pyldb: Fix CID 1034792 Dereference null return value
    
    Add a NULL check
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 15bd82550dab7a4709e92d639ee563dbc4780366
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Aug 18 19:49:24 2013 +0000

    ldb: Fix CID 1034793 Dereference null return value
    
    Add a proper NULL check
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 6417d9e0355f840ca4cf3b740ad5aabfc534d834
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Aug 18 19:37:56 2013 +0000

    samdb: Fix CID 1034910 Dereference before null check
    
    strncmp("tdb://", sam_name, 6) dereferences sam_name. Check for
    NULL before that.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 8c4e6f0cba164c91661a654e2ccc13c265a06953
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Aug 18 19:37:56 2013 +0000

    samdb: Fix CID 1034910 Dereference before null check
    
    strncmp("tdb://", sam_name, 6) dereferences sam_name. Check for
    NULL before that.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 35330aa2c8b255d74e94bc9dd742e621953c21f9
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Aug 18 19:37:56 2013 +0000

    samdb: Fix CID 1034910 Dereference before null check
    
    strncmp("tdb://", secrets_ldb, 6) dereferences secrets_ldb. Check for
    NULL before that.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit f82daa054ad95c6b1ae5cfce1efb6dc461389bc9
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Aug 18 19:34:35 2013 +0000

    registry4: Fix CID 1034911 Dereference before null check
    
    curbegin is always != NULL here (curend + 1) and is dereferenced by
    strchr.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 817e0ae6875676c8d46b63539fe805ba215d2d6b
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Aug 18 17:19:14 2013 +0000

    log2pcaphex: Fix nonempty line endings
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

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

Summary of changes:
 auth/gensec/gensec.c                               |    1 +
 lib/ldb/ldb_map/ldb_map.c                          |    6 ++++
 lib/ldb/pyldb.c                                    |    4 ++
 lib/ldb/tools/ldbtest.c                            |    4 ++
 source3/rpc_server/rpc_server.c                    |    2 +-
 source3/smbd/process.c                             |    1 +
 source3/utils/log2pcaphex.c                        |   31 +++++++++----------
 .../dsdb/samdb/ldb_modules/partition_metadata.c    |    6 ++--
 source4/dsdb/samdb/ldb_modules/schema_load.c       |    6 ++--
 source4/dsdb/samdb/ldb_modules/secrets_tdb_sync.c  |    6 ++--
 source4/lib/registry/local.c                       |    4 +-
 11 files changed, 43 insertions(+), 28 deletions(-)


Changeset truncated at 500 lines:

diff --git a/auth/gensec/gensec.c b/auth/gensec/gensec.c
index abcbcb9..63ebc19 100644
--- a/auth/gensec/gensec.c
+++ b/auth/gensec/gensec.c
@@ -273,6 +273,7 @@ _PUBLIC_ NTSTATUS gensec_update(struct gensec_security *gensec_security, TALLOC_
 
 	subreq = ops->update_send(frame, ev, gensec_security, in);
 	if (subreq == NULL) {
+		status = NT_STATUS_NO_MEMORY;
 		goto fail;
 	}
 	ok = tevent_req_poll_ntstatus(subreq, ev, &status);
diff --git a/lib/ldb/ldb_map/ldb_map.c b/lib/ldb/ldb_map/ldb_map.c
index d95f050..ce2d660 100644
--- a/lib/ldb/ldb_map/ldb_map.c
+++ b/lib/ldb/ldb_map/ldb_map.c
@@ -223,12 +223,18 @@ int ldb_next_remote_request(struct ldb_module *module, struct ldb_request *reque
 
 	case LDB_ADD:
 		msg = ldb_msg_copy_shallow(request, request->op.add.message);
+		if (msg == NULL) {
+			return LDB_ERR_OPERATIONS_ERROR;
+		}
 		msg->dn = ldb_dn_rebase_remote(msg, data, msg->dn);
 		request->op.add.message = msg;
 		break;
 
 	case LDB_MODIFY:
 		msg = ldb_msg_copy_shallow(request, request->op.mod.message);
+		if (msg == NULL) {
+			return LDB_ERR_OPERATIONS_ERROR;
+		}
 		msg->dn = ldb_dn_rebase_remote(msg, data, msg->dn);
 		request->op.mod.message = msg;
 		break;
diff --git a/lib/ldb/pyldb.c b/lib/ldb/pyldb.c
index ec6c7d0..4583132 100644
--- a/lib/ldb/pyldb.c
+++ b/lib/ldb/pyldb.c
@@ -1075,6 +1075,10 @@ static struct ldb_message *PyDict_AsMessage(TALLOC_CTX *mem_ctx,
 	PyObject *dn_value = PyDict_GetItemString(py_obj, "dn");
 
 	msg = ldb_msg_new(mem_ctx);
+	if (msg == NULL) {
+		PyErr_NoMemory();
+		return NULL;
+	}
 	msg->elements = talloc_zero_array(msg, struct ldb_message_element, PyDict_Size(py_obj));
 
 	if (dn_value) {
diff --git a/lib/ldb/tools/ldbtest.c b/lib/ldb/tools/ldbtest.c
index 4e181af..384624c 100644
--- a/lib/ldb/tools/ldbtest.c
+++ b/lib/ldb/tools/ldbtest.c
@@ -324,6 +324,10 @@ static void start_test_index(struct ldb_context **ldb)
 	ldb_delete(*ldb, indexlist);
 
 	msg = ldb_msg_new(NULL);
+	if (msg == NULL) {
+		printf("ldb_msg_new failed\n");
+		exit(LDB_ERR_OPERATIONS_ERROR);
+	}
 
 	msg->dn = indexlist;
 	ldb_msg_add_string(msg, "@IDXATTR", strdup("uid"));
diff --git a/source3/rpc_server/rpc_server.c b/source3/rpc_server/rpc_server.c
index de54ddc..fa3c870 100644
--- a/source3/rpc_server/rpc_server.c
+++ b/source3/rpc_server/rpc_server.c
@@ -620,7 +620,7 @@ int create_tcpip_socket(const struct sockaddr_storage *ifss, uint16_t *port)
 					    0,
 					    ifss,
 					    false);
-			if (fd > 0) {
+			if (fd >= 0) {
 				*port = i;
 				break;
 			}
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index 3fbfc37..b8e01ba 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -165,6 +165,7 @@ bool srv_send_smb(struct smbd_server_connection *sconn, char *buffer,
 			DEBUG(0, ("send_smb: SMB encryption failed "
 				"on outgoing packet! Error %s\n",
 				nt_errstr(status) ));
+			ret = -1;
 			goto out;
 		}
 	}
diff --git a/source3/utils/log2pcaphex.c b/source3/utils/log2pcaphex.c
index 0b1230e..8425a5e 100644
--- a/source3/utils/log2pcaphex.c
+++ b/source3/utils/log2pcaphex.c
@@ -1,4 +1,4 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Utility to extract pcap files from samba (log level 10) log files
 
@@ -154,7 +154,6 @@ static void print_hex_packet(FILE *out, unsigned char *data, long length)
 		for(i = cur; i < length && i < cur + 16; i++) {
 			fprintf(out, "%02x ", data[i]);
 		}
-	
 		cur = i;
 		fprintf(out, "\n");
 	}
@@ -162,10 +161,10 @@ static void print_hex_packet(FILE *out, unsigned char *data, long length)
 
 static void print_netbios_packet(FILE *out, unsigned char *data, long length,
 				 long actual_length)
-{	
+{
 	unsigned char *newdata; long offset = 0;
 	long newlen;
-	
+
 	newlen = length+sizeof(HDR_IP)+sizeof(HDR_TCP);
 	newdata = (unsigned char *)malloc(newlen);
 
@@ -176,7 +175,7 @@ static void print_netbios_packet(FILE *out, unsigned char *data, long length,
 	memcpy(newdata+offset, &HDR_IP, sizeof(HDR_IP));offset+=sizeof(HDR_IP);
 	memcpy(newdata+offset, &HDR_TCP, sizeof(HDR_TCP));offset+=sizeof(HDR_TCP);
 	memcpy(newdata+offset,data,length);
-	
+
 	print_pcap_packet(out, newdata, newlen, actual_length+offset);
 	free(newdata);
 }
@@ -312,12 +311,12 @@ int main (int argc, char **argv)
 		{ "hex", 'h', POPT_ARG_NONE, &hexformat, 0, "Output format readable by text2pcap" },
 		POPT_TABLEEND
 	};
-	
+
 	pc = poptGetContext(NULL, argc, (const char **) argv, long_options,
 			    POPT_CONTEXT_KEEP_FIRST);
 	poptSetOtherOptionHelp(pc, "[<infile> [<outfile>]]");
-	
-	
+
+
 	while((opt = poptGetNextOpt(pc)) != -1) {
 		switch (opt) {
 		}
@@ -334,13 +333,13 @@ int main (int argc, char **argv)
 			return 1;
 		}
 	} else in = stdin;
-	
+
 	outfile = poptGetArg(pc);
 
 	if(outfile) {
 		out = fopen(outfile, "w+");
-		if(!out) { 
-			perror("fopen"); 
+		if(!out) {
+			perror("fopen");
 			fprintf(stderr, "Can't find %s, using stdout...\n", outfile);
 			return 1;
 		}
@@ -359,15 +358,15 @@ int main (int argc, char **argv)
 				read_log_msg(in, &curpacket, &curpacket_len, &data_offset, &data_length);
 			} else if(in_packet && strstr(buffer, "dump_data")) {
 				data_bytes_read = read_log_data(in, curpacket+data_offset, data_length);
-			}  else { 
-				if(in_packet){ 
-					if(hexformat) print_hex_packet(out, curpacket, curpacket_len); 
+			}  else {
+				if(in_packet){
+					if(hexformat) print_hex_packet(out, curpacket, curpacket_len);
 					else print_netbios_packet(out, curpacket, curpacket_len, data_bytes_read+data_offset);
-					free(curpacket); 
+					free(curpacket);
 				}
 				in_packet = 0;
 			}
-		} 
+		}
 	}
 
 	if (in != stdin) {
diff --git a/source4/dsdb/samdb/ldb_modules/partition_metadata.c b/source4/dsdb/samdb/ldb_modules/partition_metadata.c
index 5826ac2..c67d6cf 100644
--- a/source4/dsdb/samdb/ldb_modules/partition_metadata.c
+++ b/source4/dsdb/samdb/ldb_modules/partition_metadata.c
@@ -199,13 +199,13 @@ static int partition_metadata_open(struct ldb_module *module, bool create)
 	}
 
 	sam_name = (const char *)ldb_get_opaque(ldb, "ldb_url");
-	if (strncmp("tdb://", sam_name, 6) == 0) {
-		sam_name += 6;
-	}
 	if (!sam_name) {
 		talloc_free(tmp_ctx);
 		return ldb_operr(ldb);
 	}
+	if (strncmp("tdb://", sam_name, 6) == 0) {
+		sam_name += 6;
+	}
 	filename = talloc_asprintf(tmp_ctx, "%s.d/metadata.tdb", sam_name);
 	if (!filename) {
 		talloc_free(tmp_ctx);
diff --git a/source4/dsdb/samdb/ldb_modules/schema_load.c b/source4/dsdb/samdb/ldb_modules/schema_load.c
index faaf3f2..93e8e97 100644
--- a/source4/dsdb/samdb/ldb_modules/schema_load.c
+++ b/source4/dsdb/samdb/ldb_modules/schema_load.c
@@ -68,13 +68,13 @@ static int schema_metadata_open(struct ldb_module *module)
 	}
 
 	sam_name = (const char *)ldb_get_opaque(ldb, "ldb_url");
-	if (strncmp("tdb://", sam_name, 6) == 0) {
-		sam_name += 6;
-	}
 	if (!sam_name) {
 		talloc_free(tmp_ctx);
 		return ldb_operr(ldb);
 	}
+	if (strncmp("tdb://", sam_name, 6) == 0) {
+		sam_name += 6;
+	}
 	filename = talloc_asprintf(tmp_ctx, "%s.d/metadata.tdb", sam_name);
 	if (!filename) {
 		talloc_free(tmp_ctx);
diff --git a/source4/dsdb/samdb/ldb_modules/secrets_tdb_sync.c b/source4/dsdb/samdb/ldb_modules/secrets_tdb_sync.c
index e3d8485..284aa1b 100644
--- a/source4/dsdb/samdb/ldb_modules/secrets_tdb_sync.c
+++ b/source4/dsdb/samdb/ldb_modules/secrets_tdb_sync.c
@@ -489,12 +489,12 @@ static int secrets_tdb_sync_init(struct ldb_module *module)
 	ldb_module_set_private(module, data);
 
 	secrets_ldb = (const char *)ldb_get_opaque(ldb, "ldb_url");
-	if (strncmp("tdb://", secrets_ldb, 6) == 0) {
-		secrets_ldb += 6;
-	}
 	if (!secrets_ldb) {
 		return ldb_operr(ldb);
 	}
+	if (strncmp("tdb://", secrets_ldb, 6) == 0) {
+		secrets_ldb += 6;
+	}
 	private_dir = talloc_strdup(data, secrets_ldb);
 	p = strrchr(private_dir, '/');
 	if (p) {
diff --git a/source4/lib/registry/local.c b/source4/lib/registry/local.c
index 79c398b..2afb65c 100644
--- a/source4/lib/registry/local.c
+++ b/source4/lib/registry/local.c
@@ -124,7 +124,7 @@ static WERROR local_open_key(TALLOC_CTX *mem_ctx,
 			break;
 		curbegin = curend + 1;
 		curend = strchr(curbegin, '\\');
-	} while (curbegin != NULL && curbegin[0] != '\0');
+	} while (curbegin[0] != '\0');
 	talloc_free(orig);
 
 	*result = reg_import_hive_key(local_parent->global.context, curkey,
@@ -233,7 +233,7 @@ static WERROR local_create_key(TALLOC_CTX *mem_ctx,
 			break;
 		curbegin = curend + 1;
 		curend = strchr(curbegin, '\\');
-	} while (curbegin != NULL && curbegin[0] != '\0');
+	} while (curbegin[0] != '\0');
 	talloc_free(orig);
 
 	*result = reg_import_hive_key(local_parent->global.context, curkey,


-- 
Samba Shared Repository


More information about the samba-cvs mailing list