From 324fdc9f8843f9bdd8e54595382abb0ab49e701a Mon Sep 17 00:00:00 2001
From: Howard Chu <hyc@openldap.org>
Date: Wed, 14 Jan 2015 11:14:43 +0000
Subject: [PATCH] Minor cleanup (coverity)

---
 servers/slapd/bconfig.c  | 2 +-
 servers/slapd/config.c   | 3 +--
 servers/slapd/controls.c | 1 +
 servers/slapd/daemon.c   | 5 ++++-
 servers/slapd/modify.c   | 1 -
 5 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c
index 0868ea6d41..468c5ac907 100644
--- a/servers/slapd/bconfig.c
+++ b/servers/slapd/bconfig.c
@@ -2957,9 +2957,9 @@ config_suffix(ConfigArgs *c)
 	if(tbe == c->be) {
 		Debug( LDAP_DEBUG_ANY, "%s: suffix already served by this backend!.\n",
 			c->log, 0, 0);
-		return 1;
 		free(pdn.bv_val);
 		free(ndn.bv_val);
+		return 1;
 	} else if(tbe) {
 		BackendDB *b2 = tbe;
 
diff --git a/servers/slapd/config.c b/servers/slapd/config.c
index 9c6c9c3c1f..8c95822d4e 100644
--- a/servers/slapd/config.c
+++ b/servers/slapd/config.c
@@ -1353,9 +1353,8 @@ slap_keepalive_parse(
 			s = ++next;
 		}
 
-		if ( s == '\0' ) {
+		if ( *s == '\0' ) {
 			sk2.sk_interval = 0;
-			s++;
 
 		} else {
 			sk2.sk_interval = strtol( s, &next, 10 );
diff --git a/servers/slapd/controls.c b/servers/slapd/controls.c
index 71f6abbb10..8159cacda0 100644
--- a/servers/slapd/controls.c
+++ b/servers/slapd/controls.c
@@ -304,6 +304,7 @@ register_supported_control2(const char *controloid,
 	if ( sc == NULL ) {
 		sc = (struct slap_control *)SLAP_MALLOC( sizeof( *sc ) );
 		if ( sc == NULL ) {
+			ber_bvarray_free( extendedopsbv );
 			return LDAP_NO_MEMORY;
 		}
 
diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c
index 5539bcf1ca..f7325e0497 100644
--- a/servers/slapd/daemon.c
+++ b/servers/slapd/daemon.c
@@ -1378,7 +1378,10 @@ slap_open_listener(
 #endif /* LDAP_PF_LOCAL || SLAP_X_LISTENER_MOD */
 
 	ldap_free_urldesc( lud );
-	if ( err ) return -1;
+	if ( err ) {
+		slap_free_listener_addresses(sal);
+		return -1;
+	}
 
 	/* If we got more than one address returned, we need to make space
 	 * for it in the slap_listeners array.
diff --git a/servers/slapd/modify.c b/servers/slapd/modify.c
index 8958a581de..08b7da8209 100644
--- a/servers/slapd/modify.c
+++ b/servers/slapd/modify.c
@@ -747,7 +747,6 @@ slap_sort_vals(
 				if ( match == 0 ) goto done;
 			}
 			if ( jstack == 0 ) break;
-			if ( match == 0 ) break;
 			ir = istack[jstack--];
 			l = istack[jstack--];
 		} else {
-- 
GitLab