[PATCH] Fix a few CIDs

Volker Lendecke Volker.Lendecke at SerNet.DE
Wed May 23 05:39:42 UTC 2018


Hi!

Review appreciated!

Thanks, Volker

-- 
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.sernet.de, mailto:kontakt at sernet.de
-------------- next part --------------
From 1f940ba1d8016d6e104399f2e639d1b1a1ba2fc0 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Tue, 22 May 2018 13:17:25 +0200
Subject: [PATCH 1/6] ctdb: Fix CID 1435740 Unchecked return value

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 ctdb/tests/src/cluster_wait.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/ctdb/tests/src/cluster_wait.c b/ctdb/tests/src/cluster_wait.c
index ecd2efdf314..8b0bb429e81 100644
--- a/ctdb/tests/src/cluster_wait.c
+++ b/ctdb/tests/src/cluster_wait.c
@@ -58,6 +58,7 @@ struct tevent_req *cluster_wait_send(TALLOC_CTX *mem_ctx,
 {
 	struct tevent_req *req, *subreq;
 	struct cluster_wait_state *state;
+	bool ok;
 
 	req = tevent_req_create(mem_ctx, &state, struct cluster_wait_state);
 	if (req == NULL) {
@@ -95,7 +96,13 @@ struct tevent_req *cluster_wait_send(TALLOC_CTX *mem_ctx,
 	tevent_req_set_callback(subreq, cluster_wait_sync_registered, req);
 
 	/* If cluster is not synchronized within 30 seconds, time out */
-	tevent_req_set_endtime(req, ev, tevent_timeval_current_ofs(30, 0));
+	ok = tevent_req_set_endtime(
+		req,
+		ev,
+		tevent_timeval_current_ofs(30, 0));
+	if (!ok) {
+		return tevent_req_post(req, ev);
+	}
 
 	return req;
 }
-- 
2.11.0


From 519469b6515c93f7600f9345fd90a24c520ad081 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Tue, 22 May 2018 13:20:17 +0200
Subject: [PATCH 2/6] audit_logging: Fix CID 1435739 Dereference null return
 value

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 lib/audit_logging/tests/audit_logging_test.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/audit_logging/tests/audit_logging_test.c b/lib/audit_logging/tests/audit_logging_test.c
index 9ba71fb60d7..8385e9ce363 100644
--- a/lib/audit_logging/tests/audit_logging_test.c
+++ b/lib/audit_logging/tests/audit_logging_test.c
@@ -519,6 +519,7 @@ static void test_audit_get_timestamp(void **state)
 		struct tm tz;
 		c = strptime(c, " %Z", &tz);
 	}
+	assert_non_null(c);
 	assert_int_equal(0, strlen(c));
 
 	actual = mktime(&tm);
-- 
2.11.0


From aaf32ada100c3d3adc15484e2900785e4da68985 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Tue, 22 May 2018 13:23:33 +0200
Subject: [PATCH 3/6] ctdbd: Fix CID 1435732 Argument cannot be negative

setenv returns its error in "errno"

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 ctdb/server/ctdbd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ctdb/server/ctdbd.c b/ctdb/server/ctdbd.c
index 252309cceab..5290165a2a4 100644
--- a/ctdb/server/ctdbd.c
+++ b/ctdb/server/ctdbd.c
@@ -307,7 +307,7 @@ int main(int argc, const char *argv[])
 			     1);
 		if (ret != 0) {
 			D_ERR("Failed to set up lock debugging (%s)\n",
-			      strerror(ret));
+			      strerror(errno));
 			goto fail;
 		}
 	}
-- 
2.11.0


From a0aaa680275922122c94ead5eeafb7f9576607cf Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Tue, 22 May 2018 13:25:41 +0200
Subject: [PATCH 4/6] ldap_server: Fix CID 1435731 Unchecked return value

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source4/ldap_server/ldap_server.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/source4/ldap_server/ldap_server.c b/source4/ldap_server/ldap_server.c
index 80b8c193be4..49e03ef8c6f 100644
--- a/source4/ldap_server/ldap_server.c
+++ b/source4/ldap_server/ldap_server.c
@@ -494,9 +494,17 @@ static bool ldapsrv_call_read_next(struct ldapsrv_connection *conn)
 		return false;
 	}
 	if (!timeval_is_zero(&conn->limits.endtime)) {
-		tevent_req_set_endtime(subreq,
-				       conn->connection->event.ctx,
-				       conn->limits.endtime);
+		bool ok;
+		ok = tevent_req_set_endtime(subreq,
+					    conn->connection->event.ctx,
+					    conn->limits.endtime);
+		if (!ok) {
+			ldapsrv_terminate_connection(
+				conn,
+				"ldapsrv_call_read_next: "
+				"no memory for tevent_req_set_endtime");
+			return false;
+		}
 	}
 	tevent_req_set_callback(subreq, ldapsrv_call_read_done, conn);
 	conn->sockets.read_req = subreq;
-- 
2.11.0


From 9fafdf490b3ca6f2adcd1d05466b6e558bc5ef68 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Tue, 22 May 2018 17:08:43 +0200
Subject: [PATCH 5/6] kdc: Fix CID 1435720 Unchecked return value

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source4/kdc/kdc-proxy.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/source4/kdc/kdc-proxy.c b/source4/kdc/kdc-proxy.c
index 5072835fa19..0f84906338f 100644
--- a/source4/kdc/kdc-proxy.c
+++ b/source4/kdc/kdc-proxy.c
@@ -184,6 +184,7 @@ static void kdc_udp_proxy_resolve_done(struct composite_context *csubreq)
 	struct tevent_req *subreq;
 	struct tsocket_address *local_addr, *proxy_addr;
 	int ret;
+	bool ok;
 
 	status = resolve_name_recv(csubreq, state, &state->proxy.ip);
 	if (!NT_STATUS_IS_OK(status)) {
@@ -234,8 +235,15 @@ static void kdc_udp_proxy_resolve_done(struct composite_context *csubreq)
 		return;
 	}
 	tevent_req_set_callback(subreq, kdc_udp_proxy_recvfrom_done, req);
-	tevent_req_set_endtime(subreq, state->ev,
-			       timeval_current_ofs(state->kdc->proxy_timeout, 0));
+
+	ok = tevent_req_set_endtime(
+		subreq,
+		state->ev,
+		timeval_current_ofs(state->kdc->proxy_timeout, 0));
+	if (!ok) {
+		DBG_DEBUG("tevent_req_set_endtime failed\n");
+		return;
+	}
 
 	DEBUG(4,("kdc_udp_proxy: proxying request to %s[%s]\n",
 		 state->proxy.name.name, state->proxy.ip));
-- 
2.11.0


From 775ec455ff5724326541a0949d142404bc99697f Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Tue, 22 May 2018 17:10:07 +0200
Subject: [PATCH 6/6] ldap_server: Fix CID 1435721 Unchecked return value

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source4/ldap_server/ldap_server.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/source4/ldap_server/ldap_server.c b/source4/ldap_server/ldap_server.c
index 49e03ef8c6f..b5251e3623e 100644
--- a/source4/ldap_server/ldap_server.c
+++ b/source4/ldap_server/ldap_server.c
@@ -104,6 +104,7 @@ static void ldapsrv_terminate_connection_done(struct tevent_req *subreq)
 		tevent_req_callback_data(subreq,
 		struct ldapsrv_connection);
 	int sys_errno;
+	bool ok;
 
 	tstream_disconnect_recv(subreq, &sys_errno);
 	TALLOC_FREE(subreq);
@@ -130,9 +131,15 @@ static void ldapsrv_terminate_connection_done(struct tevent_req *subreq)
 					    conn->limits.reason);
 		return;
 	}
-	tevent_req_set_endtime(subreq,
-			       conn->connection->event.ctx,
-			       conn->limits.endtime);
+	ok = tevent_req_set_endtime(subreq,
+				    conn->connection->event.ctx,
+				    conn->limits.endtime);
+	if (!ok) {
+		TALLOC_FREE(conn->sockets.raw);
+		stream_terminate_connection(conn->connection,
+					    conn->limits.reason);
+		return;
+	}
 	tevent_req_set_callback(subreq, ldapsrv_terminate_connection_done, conn);
 }
 
-- 
2.11.0



More information about the samba-technical mailing list