[PATCH] Fix a few Coverity findings

Volker Lendecke Volker.Lendecke at SerNet.DE
Wed Jan 17 13:52:02 UTC 2018


Hi!

Attached find a few coverity fixes.

Ralph, in the new code in winbindd_pam there are a few more newly
found ones. Can you take a look?

Thanks, Volker

-- 
Besuchen Sie die verinice.XP 2018 in Berlin,
Anwenderkonferenz für Informationssicherheit
vom 21.-23.03.2018 im Sofitel Kurfürstendamm
Info & Anmeldung hier: http://veriniceXP.org

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 7eb4e5ce3cbf5209569571c2487187e2fd267bdc Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Wed, 17 Jan 2018 14:38:41 +0100
Subject: [PATCH 1/4] pdb: Fix CID 1427624 Resource leak

It's not exactly a resource leak (we only really realloc if we shrink
dramatically), but assigning the result from tdb_realloc looks nicer.

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

diff --git a/source3/passdb/pdb_samba_dsdb.c b/source3/passdb/pdb_samba_dsdb.c
index 16a7a85bdfd..b06267b2d64 100644
--- a/source3/passdb/pdb_samba_dsdb.c
+++ b/source3/passdb/pdb_samba_dsdb.c
@@ -2959,7 +2959,7 @@ static NTSTATUS pdb_samba_dsdb_enum_trusteddoms(struct pdb_methods *m,
 		domains[di++] = d;
 	}
 
-	talloc_realloc(domains, domains, struct trustdom_info *, di);
+	domains = talloc_realloc(domains, domains, struct trustdom_info *, di);
 	*_domains = talloc_move(mem_ctx, &domains);
 	*_num_domains = di;
 	TALLOC_FREE(tmp_ctx);
-- 
2.11.0


From 89c81f55a60e9a5ac944716fd806b5bfbffdaeb0 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Wed, 17 Jan 2018 14:42:31 +0100
Subject: [PATCH 2/4] winbind: Fix CID 1427626 Uninitialized scalar variable

Likely a false positive, but Coverity can't follow all the paths leading
to line 2030

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

diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c
index 9a61cd3a578..6e34b5a777d 100644
--- a/source3/winbindd/winbindd_pam.c
+++ b/source3/winbindd/winbindd_pam.c
@@ -1823,7 +1823,7 @@ enum winbindd_result winbindd_dual_pam_auth(struct winbindd_domain *domain,
 	fstring name_domain, name_user;
 	char *mapped_user;
 	fstring domain_user;
-	uint16_t validation_level;
+	uint16_t validation_level = UINT16_MAX;
 	union netr_Validation *validation = NULL;
 	NTSTATUS name_map_status = NT_STATUS_UNSUCCESSFUL;
 
-- 
2.11.0


From 60abf234104b658c1780328d988553d09d90fc00 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Wed, 17 Jan 2018 14:38:41 +0100
Subject: [PATCH 3/4] pdb: Fix CID 1427620 Resource leak

It's not exactly a resource leak (we only really realloc if we shrink
dramatically), but assigning the result from tdb_realloc looks nicer.

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source3/passdb/pdb_samba_dsdb.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/source3/passdb/pdb_samba_dsdb.c b/source3/passdb/pdb_samba_dsdb.c
index b06267b2d64..4e55a15a0cc 100644
--- a/source3/passdb/pdb_samba_dsdb.c
+++ b/source3/passdb/pdb_samba_dsdb.c
@@ -3741,7 +3741,8 @@ static NTSTATUS pdb_samba_dsdb_enum_trusted_domains(struct pdb_methods *m,
 		domains[di++] = d;
 	}
 
-	talloc_realloc(domains, domains, struct pdb_trusted_domain *, di);
+	domains = talloc_realloc(domains, domains, struct pdb_trusted_domain *,
+				 di);
 	*_domains = talloc_move(mem_ctx, &domains);
 	*_num_domains = di;
 	TALLOC_FREE(tmp_ctx);
-- 
2.11.0


From 071bd05ca5f67cb1b12105af9037f13f22449d0e Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Wed, 17 Jan 2018 14:45:49 +0100
Subject: [PATCH 4/4] winbind: Fix CID 1427626 Uninitialized scalar variable

Likely a false positive, but Coverity can't follow all the paths leading
to line 1598.

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

diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c
index 6e34b5a777d..97425e859f3 100644
--- a/source3/winbindd/winbindd_pam.c
+++ b/source3/winbindd/winbindd_pam.c
@@ -1428,7 +1428,7 @@ static NTSTATUS winbind_samlogon_retry_loop(struct winbindd_domain *domain,
 	int netr_attempts = 0;
 	bool retry = false;
 	NTSTATUS result;
-	uint16_t validation_level;
+	uint16_t validation_level = UINT16_MAX;
 	union netr_Validation *validation = NULL;
 
 	do {
-- 
2.11.0



More information about the samba-technical mailing list