andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 5 months ago
Clone
Blob Blame History Raw
From 45a86b895601644b624d27484933735d7e665a66 Mon Sep 17 00:00:00 2001
From: Rich Megginson <rmeggins@redhat.com>
Date: Wed, 5 Jun 2013 11:30:13 -0600
Subject: [PATCH 82/99] Ticket #47378 - fix recent compiler warnings

https://fedorahosted.org/389/ticket/47378
Reviewed by: nhosoi (Thanks!)
Branch: master
Fix Description: Fix the various compiler warnings as reported by
http://jenkins.cloud.fedoraproject.org/job/389-ds-base/ws/build-warns.1370449480.txt
In addition, fixed a bug in the slapi_re_subs_ext - if there was an
ampersand that did not need to be replaced, that is, if the ampersand
was part of an LDAP search filter, it was replaced with a '('.  Also, an
ampersand preceeded by an open parenthesis and followed by a non-open
parenthesis is supposed to be replaced in the string, but this was not
working.
Platforms tested: RHEL6 x86_64
Flag Day: no
Doc impact: no
(cherry picked from commit 0dc230b007dc3ad292961f378421b03736b68f9e)
(cherry picked from commit 79739bdfba251ed6445ae4a16e90a471ca3f7b94)
---
 .../plugins/acct_usability/acct_usability.c        |  2 +-
 ldap/servers/plugins/acl/acl_ext.c                 |  2 +-
 ldap/servers/plugins/acl/aclutil.c                 |  3 ++-
 ldap/servers/plugins/automember/automember.c       |  3 ++-
 ldap/servers/plugins/deref/deref.c                 |  2 +-
 ldap/servers/plugins/http/http_impl.c              |  4 ++--
 ldap/servers/plugins/pam_passthru/pam_ptimpl.c     |  2 +-
 ldap/servers/plugins/referint/referint.c           |  2 +-
 ldap/servers/plugins/replication/cl5_api.c         | 20 +++++++++---------
 .../plugins/replication/windows_inc_protocol.c     |  2 +-
 ldap/servers/plugins/replication/windows_private.c |  9 ++++++--
 ldap/servers/plugins/usn/usn.c                     |  4 ++--
 ldap/servers/slapd/back-ldbm/import-threads.c      |  2 +-
 ldap/servers/slapd/back-ldbm/monitor.c             | 18 ++++++++--------
 ldap/servers/slapd/log.c                           | 24 ++++++++++++++--------
 ldap/servers/slapd/mapping_tree.c                  |  6 +++++-
 ldap/servers/slapd/regex.c                         | 10 ++++++---
 ldap/servers/slapd/slapi-plugin.h                  |  9 ++++++++
 ldap/servers/slapd/tools/ldclt/ldapfct.c           |  5 -----
 ldap/servers/slapd/tools/rsearch/infadd.c          |  7 +++----
 ldap/servers/snmp/main.c                           | 13 +++++++++++-
 lib/libaccess/acltools.cpp                         |  2 +-
 lib/libaccess/register.cpp                         | 10 +++++----
 23 files changed, 100 insertions(+), 61 deletions(-)

diff --git a/ldap/servers/plugins/acct_usability/acct_usability.c b/ldap/servers/plugins/acct_usability/acct_usability.c
index 19e55c3..f41f934 100644
--- a/ldap/servers/plugins/acct_usability/acct_usability.c
+++ b/ldap/servers/plugins/acct_usability/acct_usability.c
@@ -312,7 +312,7 @@ auc_pre_search(Slapi_PBlock *pb)
     int ldapcode = LDAP_SUCCESS;
     const LDAPControl **reqctrls = NULL;
     const LDAPControl *aucctrl = NULL;
-    const char *ldaperrtext;
+    const char *ldaperrtext = "Unknown error";
     const char *incompatible = NULL;
     int isroot = 0;
     int ii;
diff --git a/ldap/servers/plugins/acl/acl_ext.c b/ldap/servers/plugins/acl/acl_ext.c
index f8699b4..e42a7e2 100644
--- a/ldap/servers/plugins/acl/acl_ext.c
+++ b/ldap/servers/plugins/acl/acl_ext.c
@@ -128,7 +128,7 @@ acl_get_ext (ext_type type, void *object)
 void
 acl_set_ext (ext_type type, void *object, void *data)
 {
-	if ( type >= 0 && type < ACL_EXT_ALL )
+	if ( type < ACL_EXT_ALL )
 	{
 		struct acl_ext ext = acl_ext_list [type];
 		slapi_set_object_extension ( ext.object_type, object, ext.handle, data );
diff --git a/ldap/servers/plugins/acl/aclutil.c b/ldap/servers/plugins/acl/aclutil.c
index 77ec35f..2002276 100644
--- a/ldap/servers/plugins/acl/aclutil.c
+++ b/ldap/servers/plugins/acl/aclutil.c
@@ -96,6 +96,7 @@ aclutil_str_append_ext(char **dest, size_t *dlen, const char *src, size_t slen)
     char *ptr = NULL;
     int rc = 0;
 
+    PR_ASSERT(NULL != dlen);
     if ( dest == NULL || src == NULL ) {
         return rc;    
     }
@@ -103,7 +104,7 @@ aclutil_str_append_ext(char **dest, size_t *dlen, const char *src, size_t slen)
     if (0 == slen) {
         slen = strlen(src);
     }
-    if (*dest && dlen > 0) {
+    if (*dest && *dlen > 0) {
         size_t dest_strlen = strlen(*dest);
         size_t new_len = dest_strlen + slen + 1;
         if (new_len > *dlen) {
diff --git a/ldap/servers/plugins/automember/automember.c b/ldap/servers/plugins/automember/automember.c
index 424b507..49f47f7 100644
--- a/ldap/servers/plugins/automember/automember.c
+++ b/ldap/servers/plugins/automember/automember.c
@@ -2522,10 +2522,11 @@ void automember_map_task_thread(void *arg){
 #if defined(USE_OPENLDAP)
     int buflen = 0;
     LDIFFP *ldif_fd_in = NULL;
+    ldif_record_lineno_t lineno = 0;
 #else
     PRFileDesc *ldif_fd_in = NULL;
-#endif
     int lineno = 0;
+#endif
     int rc = 0;
 
     td = (task_data *)slapi_task_get_data(task);
diff --git a/ldap/servers/plugins/deref/deref.c b/ldap/servers/plugins/deref/deref.c
index 51394c8..6e4d4ec 100644
--- a/ldap/servers/plugins/deref/deref.c
+++ b/ldap/servers/plugins/deref/deref.c
@@ -440,7 +440,7 @@ deref_pre_search(Slapi_PBlock *pb)
     int ldapcode = LDAP_SUCCESS;
     const LDAPControl **reqctrls = NULL;
     const LDAPControl *derefctrl = NULL;
-    const char *ldaperrtext;
+    const char *ldaperrtext = "Unknown error";
     const char *incompatible = NULL;
     DerefSpecList *speclist = NULL;
     int ii;
diff --git a/ldap/servers/plugins/http/http_impl.c b/ldap/servers/plugins/http/http_impl.c
index f96d75a..db02b67 100644
--- a/ldap/servers/plugins/http/http_impl.c
+++ b/ldap/servers/plugins/http/http_impl.c
@@ -260,7 +260,7 @@ static int doRequest(const char *url, httpheader **httpheaderArray, char *body,
 	PRInt32 port;
 	PRInt32 errcode = 0;
 	PRInt32 http_connection_time_out = 0;
-	PRInt32 sslOn;
+	PRInt32 sslOn = 0;
 	
 	LDAPDebug( LDAP_DEBUG_PLUGIN, "--> doRequest -- BEGIN\n",0,0,0);
 
@@ -1178,7 +1178,7 @@ SECStatus
                     struct SECKEYPrivateKeyStr **pRetKey)
 {
     CERTCertificate *  cert;
-    SECKEYPrivateKey * privKey;
+    SECKEYPrivateKey * privKey = NULL;
     char *             chosenNickName = (char *)arg;
     void *             proto_win      = NULL;
     SECStatus          secStatus      = SECFailure;
diff --git a/ldap/servers/plugins/pam_passthru/pam_ptimpl.c b/ldap/servers/plugins/pam_passthru/pam_ptimpl.c
index 69c08e8..2558b9e 100644
--- a/ldap/servers/plugins/pam_passthru/pam_ptimpl.c
+++ b/ldap/servers/plugins/pam_passthru/pam_ptimpl.c
@@ -263,7 +263,7 @@ do_one_pam_auth(
 	MyStrBuf pam_id;
 	const char *binddn = NULL;
 	Slapi_DN *bindsdn = NULL;
-	int rc;
+	int rc = PAM_SUCCESS;
 	int retcode = LDAP_SUCCESS;
 	pam_handle_t *pam_handle;
 	struct my_pam_conv_str my_data;
diff --git a/ldap/servers/plugins/referint/referint.c b/ldap/servers/plugins/referint/referint.c
index 8f751da..4a722c1 100644
--- a/ldap/servers/plugins/referint/referint.c
+++ b/ldap/servers/plugins/referint/referint.c
@@ -896,7 +896,7 @@ void
 referint_thread_func(void *arg)
 {
     char **plugin_argv = (char **)arg;
-    PRFileDesc *prfd;
+    PRFileDesc *prfd = NULL;
     char *logfilename;
     char thisline[MAX_LINE];
     int delay;
diff --git a/ldap/servers/plugins/replication/cl5_api.c b/ldap/servers/plugins/replication/cl5_api.c
index e24cead..a06c43f 100644
--- a/ldap/servers/plugins/replication/cl5_api.c
+++ b/ldap/servers/plugins/replication/cl5_api.c
@@ -271,8 +271,8 @@ static CL5Desc s_cl5Desc;
 
 /* changelog initialization and cleanup */
 static int _cl5Open (const char *dir, const CL5DBConfig *config, CL5OpenMode openMode);
-static int _cl5AppInit (PRBool *didRecovery);
-static int _cl5DBOpen ();
+static int _cl5AppInit (void);
+static int _cl5DBOpen (void);
 static void _cl5SetDefaultDBConfig ();
 static void _cl5SetDBConfig (const CL5DBConfig *config);
 static int _cl5CheckDBVersion ();
@@ -876,12 +876,13 @@ cl5ImportLDIF (const char *clDir, const char *ldifFile, Object **replicas)
 #if defined(USE_OPENLDAP)
 	LDIFFP *file = NULL;
 	int buflen;
+	ldif_record_lineno_t lineno = 0;
 #else
 	FILE *file = NULL;
+	int lineno = 0;
 #endif
 	int rc;
 	char *buff = NULL;
-	int lineno = 0;
 	slapi_operation_parameters op;
 	Object *prim_replica_obj = NULL;
 	Object *replica_obj = NULL;
@@ -1850,7 +1851,6 @@ int cl5GetOperationCount (Object *replica)
 static int _cl5Open (const char *dir, const CL5DBConfig *config, CL5OpenMode openMode)
 {
 	int rc;
-	PRBool didRecovery;
 
 	PR_ASSERT (dir);
 
@@ -1898,7 +1898,7 @@ static int _cl5Open (const char *dir, const CL5DBConfig *config, CL5OpenMode ope
 	s_cl5Desc.dbOpenMode = openMode;
 
 	/* initialize db environment */
-	rc = _cl5AppInit (&didRecovery);
+	rc = _cl5AppInit ();
 	if (rc != CL5_SUCCESS)
 	{
 		slapi_log_error(SLAPI_LOG_REPL, repl_plugin_name_cl, 
@@ -1913,7 +1913,7 @@ static int _cl5Open (const char *dir, const CL5DBConfig *config, CL5OpenMode ope
 	}
 
 	/* open database files */
-	rc = _cl5DBOpen (!didRecovery);
+	rc = _cl5DBOpen ();
 	if (rc != CL5_SUCCESS)
 	{
 		slapi_log_error(SLAPI_LOG_REPL, repl_plugin_name_cl, 
@@ -1989,7 +1989,7 @@ int cl5CreateDirIfNeeded (const char *dirName)
 	return CL5_SUCCESS;
 }
 
-static int _cl5AppInit (PRBool *didRecovery)
+static int _cl5AppInit (void)
 {
 	int rc = -1; /* initialize to failure */
 	DB_ENV *dbEnv = NULL;
@@ -2853,7 +2853,7 @@ static int _cl5Upgrade3_4(char *fromVersion, char *toVersion)
 	backup = s_cl5Desc.dbOpenMode;
 	s_cl5Desc.dbOpenMode = CL5_OPEN_CLEAN_RECOVER;
 	/* CL5_OPEN_CLEAN_RECOVER does 1 and 2 */
-	rc = _cl5AppInit (NULL);
+	rc = _cl5AppInit ();
 	if (rc != CL5_SUCCESS)
 	{
 		slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name_cl, 
@@ -2943,7 +2943,7 @@ static int _cl5Upgrade4_4(char *fromVersion, char *toVersion)
 	backup = s_cl5Desc.dbOpenMode;
 	s_cl5Desc.dbOpenMode = CL5_OPEN_CLEAN_RECOVER;
 	/* CL5_OPEN_CLEAN_RECOVER does 1 and 2 */
-	rc = _cl5AppInit (NULL);
+	rc = _cl5AppInit ();
 	if (rc != CL5_SUCCESS)
 	{
 		slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name_cl, 
@@ -4208,7 +4208,7 @@ static int _cl5Operation2LDIF (const slapi_operation_parameters *op, const char
 	int len = 2;
 	lenstr *l = NULL;
 	const char *strType;
-	char *strDeleteOldRDN;
+	const char *strDeleteOldRDN = "false";
 	char *buff, *start;
 	LDAPMod **add_mods;
 	char *rawDN = NULL;
diff --git a/ldap/servers/plugins/replication/windows_inc_protocol.c b/ldap/servers/plugins/replication/windows_inc_protocol.c
index b5fcadc..cb3b3d2 100644
--- a/ldap/servers/plugins/replication/windows_inc_protocol.c
+++ b/ldap/servers/plugins/replication/windows_inc_protocol.c
@@ -1175,7 +1175,7 @@ send_updates(Private_Repl_Protocol *prp, RUV *remote_update_vector, PRUint32 *nu
 {
 	CL5Entry entry;
 	slapi_operation_parameters op;
-	int return_value;
+	int return_value = UPDATE_NO_MORE_UPDATES;
 	int rc;
 	int set_mincsn = 0;
 	CL5ReplayIterator *changelog_iterator = NULL;
diff --git a/ldap/servers/plugins/replication/windows_private.c b/ldap/servers/plugins/replication/windows_private.c
index 20360a3..a103cad 100644
--- a/ldap/servers/plugins/replication/windows_private.c
+++ b/ldap/servers/plugins/replication/windows_private.c
@@ -1344,11 +1344,16 @@ windows_plugin_init(Repl_Agmt *ra)
 {
     struct winsync_plugin_cookie *list = NULL;
     void *cookie = NULL;
-    PRStatus rv;
 
     LDAPDebug0Args( LDAP_DEBUG_PLUGIN, "--> windows_plugin_init_start -- begin\n");
 
-    rv = PR_CallOnce(&winsync_callOnce, windows_plugin_callonce);
+    if (PR_CallOnce(&winsync_callOnce, windows_plugin_callonce)) {
+	    PRErrorCode prerr = PR_GetError();
+	    slapi_log_error(SLAPI_LOG_FATAL, "windows_plugin_init",
+		    	    "cannot initialize plugin: %d:%s\n", prerr,
+		    	    slapi_pr_strerror(prerr));
+	    return;
+    }
 
     /* call each plugin init function in turn - store the returned cookie
        indexed by the api */
diff --git a/ldap/servers/plugins/usn/usn.c b/ldap/servers/plugins/usn/usn.c
index 0273fd1..4473618 100644
--- a/ldap/servers/plugins/usn/usn.c
+++ b/ldap/servers/plugins/usn/usn.c
@@ -673,7 +673,7 @@ usn_rootdse_search(Slapi_PBlock *pb, Slapi_Entry* e, Slapi_Entry* entryAfter,
         if (be && be->be_usn_counter) {
             /* get a next USN counter from be_usn_counter; 
              * then minus 1 from it */
-            PR_snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "%" NSPRI64 "d",
+            PR_snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "%" NSPRIu64,
                                 slapi_counter_get_value(be->be_usn_counter)-1);
             usn_berval.bv_len = strlen(usn_berval.bv_val);
             slapi_entry_attr_replace(e, attr, vals);
@@ -692,7 +692,7 @@ usn_rootdse_search(Slapi_PBlock *pb, Slapi_Entry* e, Slapi_Entry* entryAfter,
             }
             /* get a next USN counter from be_usn_counter; 
              * then minus 1 from it */
-            PR_snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "%" NSPRI64 "d",
+            PR_snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "%" NSPRIu64,
                                 slapi_counter_get_value(be->be_usn_counter)-1);
             usn_berval.bv_len = strlen(usn_berval.bv_val);
     
diff --git a/ldap/servers/slapd/back-ldbm/import-threads.c b/ldap/servers/slapd/back-ldbm/import-threads.c
index b85f073..5667acb 100644
--- a/ldap/servers/slapd/back-ldbm/import-threads.c
+++ b/ldap/servers/slapd/back-ldbm/import-threads.c
@@ -3622,7 +3622,7 @@ _get_import_entryusn(ImportJob *job, Slapi_Value **usn_value)
              * Use the counter which stores the old DB's
              * next entryusn. */
             PR_snprintf(counter_buf, USN_COUNTER_BUF_LEN,
-                        "%" NSPRI64 "d",
+                        "%" NSPRIu64,
                         slapi_counter_get_value(be->be_usn_counter));
         } else {
             /* import_init value is digit.
diff --git a/ldap/servers/slapd/back-ldbm/monitor.c b/ldap/servers/slapd/back-ldbm/monitor.c
index 075a48f..e3e1fb5 100644
--- a/ldap/servers/slapd/back-ldbm/monitor.c
+++ b/ldap/servers/slapd/back-ldbm/monitor.c
@@ -214,13 +214,13 @@ int ldbm_back_monitor_instance_search(Slapi_PBlock *pb, Slapi_Entry *e,
 #endif
         MSETF("dbFilename-%d", i);
         
-        sprintf(buf, "%u", mpfstat[i]->st_cache_hit);
+        sprintf(buf, "%lu", (unsigned long)mpfstat[i]->st_cache_hit);
         MSETF("dbFileCacheHit-%d", i);
-        sprintf(buf, "%u", mpfstat[i]->st_cache_miss);
+        sprintf(buf, "%lu", (unsigned long)mpfstat[i]->st_cache_miss);
         MSETF("dbFileCacheMiss-%d", i);
-        sprintf(buf, "%u", mpfstat[i]->st_page_in);
+        sprintf(buf, "%lu", (unsigned long)mpfstat[i]->st_page_in);
         MSETF("dbFilePageIn-%d", i);
-        sprintf(buf, "%u", mpfstat[i]->st_page_out);
+        sprintf(buf, "%lu", (unsigned long)mpfstat[i]->st_page_out);
         MSETF("dbFilePageOut-%d", i);
 
 	slapi_ch_free_string(&absolute_pathname);
@@ -267,7 +267,7 @@ int ldbm_back_monitor_search(Slapi_PBlock *pb, Slapi_Entry *e,
     }
 
     /* cache hits*/
-    sprintf(buf, "%u", mpstat->st_cache_hit);
+    sprintf(buf, "%lu", (unsigned long)mpstat->st_cache_hit);
     MSET("dbCacheHits");
 
     /* cache tries*/
@@ -279,13 +279,13 @@ int ldbm_back_monitor_search(Slapi_PBlock *pb, Slapi_Entry *e,
     sprintf(buf, "%lu", (unsigned long)(100.0 * (double)mpstat->st_cache_hit / (double)(cache_tries > 0 ? cache_tries : 1) ));
     MSET("dbCacheHitRatio");
 
-    sprintf(buf, "%u", mpstat->st_page_in);
+    sprintf(buf, "%lu", (unsigned long)mpstat->st_page_in);
     MSET("dbCachePageIn");
-    sprintf(buf, "%u", mpstat->st_page_out);
+    sprintf(buf, "%lu", (unsigned long)mpstat->st_page_out);
     MSET("dbCachePageOut");
-    sprintf(buf, "%u", mpstat->st_ro_evict);
+    sprintf(buf, "%lu", (unsigned long)mpstat->st_ro_evict);
     MSET("dbCacheROEvict");
-    sprintf(buf, "%u", mpstat->st_rw_evict);
+    sprintf(buf, "%lu", (unsigned long)mpstat->st_rw_evict);
     MSET("dbCacheRWEvict");
 
     slapi_ch_free((void **)&mpstat);
diff --git a/ldap/servers/slapd/log.c b/ldap/servers/slapd/log.c
index e65b247..a765001 100644
--- a/ldap/servers/slapd/log.c
+++ b/ldap/servers/slapd/log.c
@@ -207,6 +207,15 @@ slapd_log_error_proc_internal(
 	/* Should be a flush in here ?? Yes because PR_SYNC doesn't work ! */ \
 	PR_Sync(fd); \
 	} while (0)
+#define LOG_WRITE_NOW_NO_ERR(fd, buffer, size, headersize) do {\
+	if ( slapi_write_buffer((fd), (buffer), (size)) != (size) ) \
+	{ \
+		PRErrorCode prerr = PR_GetError(); \
+		syslog(LOG_ERR, "Failed to write log, " SLAPI_COMPONENT_NAME_NSPR " error %d (%s): %s\n", prerr, slapd_pr_strerror(prerr), (buffer)+(headersize) ); \
+	} \
+	/* Should be a flush in here ?? Yes because PR_SYNC doesn't work ! */ \
+	PR_Sync(fd); \
+	} while (0)
 #define LOG_CLOSE(fd) \
 	PR_Close((fd))
 #endif
@@ -1279,7 +1288,7 @@ int
 log_set_maxdiskspace(const char *attrname, char *maxdiskspace_str, int logtype, char *errorbuf, int apply)
 {
 	int	rv = 0;
-  	PRInt64	mlogsize;	  /* in bytes */
+  	PRInt64	mlogsize = 0;	  /* in bytes */
 	PRInt64 maxdiskspace; /* in bytes */
 	int	s_maxdiskspace;   /* in megabytes */
   
@@ -1520,7 +1529,7 @@ log_set_expirationtimeunit(const char *attrname, char *expunit, int logtype, cha
 {
 	int	value = 0;
 	int	rv = 0;
-	int	exptime, rsecs;
+	int	exptime = 0, rsecs = 0;
 	int	*exptimeunitp = NULL;
 	slapdFrontendConfig_t *fe_cfg = getFrontendConfig();
 
@@ -1642,12 +1651,11 @@ log_write_title (LOGFD fp)
 	char *buildnum = config_get_buildnum();
 	char buff[512];
 	int bufflen = sizeof(buff);
-	int err = 0;
 
 	PR_snprintf(buff, bufflen, "\t%s B%s\n",
 				fe_cfg->versionstring ? fe_cfg->versionstring : CAPBRAND "-Directory/" DS_PACKAGE_VERSION,
 				buildnum ? buildnum : "");
-	LOG_WRITE_NOW(fp, buff, strlen(buff), 0, err);
+	LOG_WRITE_NOW_NO_ERR(fp, buff, strlen(buff), 0);
 
 	if (fe_cfg->localhost) {
 		PR_snprintf(buff, bufflen, "\t%s:%d (%s)\n\n",
@@ -1662,7 +1670,7 @@ log_write_title (LOGFD fp)
 		PR_snprintf(buff, bufflen, "\t<host>:<port> (%s)\n\n",
 				fe_cfg->configdir ? fe_cfg->configdir : "");
 	}
-	LOG_WRITE_NOW(fp, buff, strlen(buff), 0, err);
+	LOG_WRITE_NOW_NO_ERR(fp, buff, strlen(buff), 0);
 	slapi_ch_free((void **)&buildnum);
 }
 
@@ -1768,7 +1776,7 @@ slapd_log_audit_proc (
 			log_write_title( loginfo.log_audit_fdes);
 			loginfo.log_audit_state &= ~LOGGING_NEED_TITLE;
 		}
-	    LOG_WRITE_NOW(loginfo.log_audit_fdes, buffer, buf_len, 0, err);
+	    LOG_WRITE_NOW_NO_ERR(loginfo.log_audit_fdes, buffer, buf_len, 0);
    		LOG_AUDIT_UNLOCK_WRITE();
 	    return 0;
 	}
@@ -4185,8 +4193,8 @@ static void log_flush_buffer(LogBufferInfo *lbi, int type, int sync_now)
 		if (!sync_now && slapdFrontendConfig->accesslogbuffering) {
 			LOG_WRITE(loginfo.log_access_fdes, lbi->top, lbi->current - lbi->top, 0);
 		} else {
-			LOG_WRITE_NOW(loginfo.log_access_fdes, lbi->top,
-								lbi->current - lbi->top, 0, err);
+			LOG_WRITE_NOW_NO_ERR(loginfo.log_access_fdes, lbi->top,
+								lbi->current - lbi->top, 0);
 		}
 
         lbi->current = lbi->top;
diff --git a/ldap/servers/slapd/mapping_tree.c b/ldap/servers/slapd/mapping_tree.c
index da8e4f3..19c5708 100644
--- a/ldap/servers/slapd/mapping_tree.c
+++ b/ldap/servers/slapd/mapping_tree.c
@@ -158,8 +158,10 @@ static mapping_tree_node *
 static int _mtn_update_config_param(int op, char *type, char *strvalue);
 
 #ifdef DEBUG
+#ifdef USE_DUMP_MAPPING_TREE
 static void dump_mapping_tree(mapping_tree_node *parent, int depth);
 #endif
+#endif
 
 /* structure and static local variable used to store the
  * list of plugins that have registered to a callback when backend state
@@ -3721,6 +3723,7 @@ void test_register()
 #endif
 
 #ifdef DEBUG
+#ifdef USE_DUMP_MAPPING_TREE
 static void dump_mapping_tree(mapping_tree_node *parent, int depth)
 {
     mapping_tree_node *current = NULL;
@@ -3751,7 +3754,8 @@ static void dump_mapping_tree(mapping_tree_node *parent, int depth)
     }
     return;
 }
-#endif
+#endif /* USE_DUMP_MAPPING_TREE */
+#endif /* DEBUG */
 
 /* helper function to set/remove the config param in cn=config */
 static int
diff --git a/ldap/servers/slapd/regex.c b/ldap/servers/slapd/regex.c
index 3697fde..29edffe 100644
--- a/ldap/servers/slapd/regex.c
+++ b/ldap/servers/slapd/regex.c
@@ -161,7 +161,7 @@ slapi_re_subs_ext( Slapi_Regex *re_handle, const char *subject,
     int  pin;
     int  *ovector;
     char *mydst;
-    const char *prev, *next;
+    const char *prev;
     const char *substring_start;
     const char *p;
 
@@ -179,8 +179,7 @@ slapi_re_subs_ext( Slapi_Regex *re_handle, const char *subject,
     for (p = src; *p != '\0'; p++) {
         if ('&' == *p) {
             /* Don't replace '&' if it's a filter AND: "(&(cn=a)(sn=b))"  */
-            next = p;
-            if(!filter || (*prev != '(' && *next++ != '(')){
+            if(!filter || !(*prev == '(' && *(p+1) == '(')){
                 if (re_handle->re_oveccount <= 1) {
                     memset(*dst, '\0', dstlen);
                     return -1;
@@ -188,6 +187,11 @@ slapi_re_subs_ext( Slapi_Regex *re_handle, const char *subject,
                 substring_start = subject + ovector[0];
                 thislen = ovector[1] - ovector[0];
                 len += thislen;
+            } else { /* is a filter AND clause */
+                /* just copy it into the filter */
+                substring_start = p;
+                thislen = 1;
+                len++;
             }
         } else if (('\\' == *p) && ('0' <= *(p+1) && *(p+1) <= '9')) {
             pin = *(++p) - '0';
diff --git a/ldap/servers/slapd/slapi-plugin.h b/ldap/servers/slapd/slapi-plugin.h
index 5b3e1ab..0fdb206 100644
--- a/ldap/servers/slapd/slapi-plugin.h
+++ b/ldap/servers/slapd/slapi-plugin.h
@@ -6870,6 +6870,15 @@ int slapi_ldap_get_lderrno(LDAP *ld, char **m, char **s);
 #endif
 void slapi_ldif_put_type_and_value_with_options( char **out, const char *t, const char *val, int vlen, unsigned long options );
 
+/* ldif_read_record lineno argument type depends on openldap version */
+#if defined(USE_OPENLDAP)
+#if LDAP_VENDOR_VERSION >= 20434 /* changed in 2.4.34 */
+typedef unsigned long int ldif_record_lineno_t;
+#else
+typedef int ldif_record_lineno_t;
+#endif
+#endif
+
 #if defined(USE_OPENLDAP)
 /*
  * UTF-8 routines (should these move into libnls?)
diff --git a/ldap/servers/slapd/tools/ldclt/ldapfct.c b/ldap/servers/slapd/tools/ldclt/ldapfct.c
index 3f74fd0..b177d7c 100644
--- a/ldap/servers/slapd/tools/ldclt/ldapfct.c
+++ b/ldap/servers/slapd/tools/ldclt/ldapfct.c
@@ -732,10 +732,8 @@ LDAP *
 connectToLDAP(thread_context *tttctx, const char *bufBindDN, const char *bufPasswd, unsigned int mode, unsigned int mod2)
 {
   LDAP *ld = NULL;
-  const char *mech = LDAP_SASL_SIMPLE;
   struct berval cred = {0, NULL};
   int v2v3 = LDAP_VERSION3;
-  const char *binddn = NULL;
   const char *passwd = NULL;
 #if defined(USE_OPENLDAP)
   char *ldapurl = NULL;
@@ -863,11 +861,8 @@ connectToLDAP(thread_context *tttctx, const char *bufBindDN, const char *bufPass
 #endif /* !USE_OPENLDAP */
 
   if (mode & CLTAUTH) {
-    mech = "EXTERNAL";
-    binddn = "";
     passwd = NULL;
   } else {
-    binddn = bufBindDN?bufBindDN:mctx.bindDN;
     passwd = bufPasswd?bufPasswd:mctx.passwd;
     if (passwd) {
       cred.bv_val = (char *)passwd;
diff --git a/ldap/servers/slapd/tools/rsearch/infadd.c b/ldap/servers/slapd/tools/rsearch/infadd.c
index 607381a..4a9f2e9 100644
--- a/ldap/servers/slapd/tools/rsearch/infadd.c
+++ b/ldap/servers/slapd/tools/rsearch/infadd.c
@@ -127,11 +127,10 @@ char *randName(void)
     return x;
 }
 
-int fill_table(NameTable *nt, PRUint32 size)
+void fill_table(NameTable *nt, PRUint32 size)
 {
     PRUint32 i;
     char *x;
-    int ret;
 
     fprintf(stdout, "Generating random names: 0      ");
     for (i = 0; i < size; i++) {
@@ -141,13 +140,13 @@ int fill_table(NameTable *nt, PRUint32 size)
 	    free(x);
 	    x = randName();
 	}
-	ret = nt_push(nt, x);
+	(void)nt_push(nt, x);
 	if ((i % 100) == 0) {
 	    fprintf(stdout, "\b\b\b\b\b\b\b%-7d", i);
 	}
     }
     fprintf(stdout, "\b\b\b\b\b\b\b%d.  Done.\n", size);
-    return ret;
+    return;
 }
 
 int main(int argc, char **argv)
diff --git a/ldap/servers/snmp/main.c b/ldap/servers/snmp/main.c
index 53af972..0d1fb25 100644
--- a/ldap/servers/snmp/main.c
+++ b/ldap/servers/snmp/main.c
@@ -236,6 +236,15 @@ main (int argc, char *argv[]) {
     return 0;
 }
 
+/* ldif_read_record lineno argument type depends on openldap version */
+#if defined(USE_OPENLDAP)
+#if LDAP_VENDOR_VERSION >= 20434 /* changed in 2.4.34 */
+typedef unsigned long int ldif_record_lineno_t;
+#else
+typedef int ldif_record_lineno_t;
+#endif
+#endif
+
 /************************************************************************
  * load_config
  *
@@ -249,8 +258,10 @@ load_config(char *conf_path)
 #if defined(USE_OPENLDAP)
     LDIFFP *dse_fp = NULL;
     int buflen = 0;
+    ldif_record_lineno_t lineno = 0;
 #else
     FILE *dse_fp = NULL;
+    int lineno = 0;
 #endif
     char line[MAXLINE];
     char *p = NULL;
@@ -329,10 +340,10 @@ load_config(char *conf_path)
         } else if ((p = strstr(line, "server")) != NULL) {
             int got_port = 0;
             int got_rundir = 0;
-            int lineno = 0;
             char *entry = NULL;
             char *instancename = NULL;
 
+            lineno = 0;
             /* Allocate a server_instance */
             if ((serv_p = malloc(sizeof(server_instance))) == NULL) {
                 printf("ldap-agent: malloc error processing config file\n");
diff --git a/lib/libaccess/acltools.cpp b/lib/libaccess/acltools.cpp
index df08658..4c1d28c 100644
--- a/lib/libaccess/acltools.cpp
+++ b/lib/libaccess/acltools.cpp
@@ -1741,7 +1741,7 @@ static PList_t ACLAttr2IndexPList = NULL;
 int
 ACL_InitAttr2Index(void)
 {
-    int i;
+    intptr_t i;
 
     if (ACLAttr2IndexPList) return 0;
 
diff --git a/lib/libaccess/register.cpp b/lib/libaccess/register.cpp
index 3f2acc5..595c1f2 100644
--- a/lib/libaccess/register.cpp
+++ b/lib/libaccess/register.cpp
@@ -77,6 +77,8 @@ ACL_LasHashInit()
 {
     int	i;
 
+    (void)(link_ACLGlobal); /* get rid of defined but not used compiler warning */
+    (void)(link_nsacl_table); /* get rid of defined but not used compiler warning */
     ACLLasEvalHash = PR_NewHashTable(0,
 				     PR_HashString,
 				     PR_CompareStrings,
@@ -268,11 +270,11 @@ ACL_MethodRegister(NSErr_t *errp, const char *name, ACLMethod_t *t)
     }
 	
     /*  Put it in the hash table  */
-    if (NULL == PR_HashTableAdd(ACLMethodHash, name, (void *)++cur_method)) {
+    if (NULL == PR_HashTableAdd(ACLMethodHash, name, (void *)(intptr_t)++cur_method)) {
         ACL_CritExit();
         return -1;
     }
-    *t = (ACLMethod_t) cur_method;
+    *t = (ACLMethod_t) (intptr_t)cur_method;
 
     ACL_CritExit();
     return 0;
@@ -412,11 +414,11 @@ ACL_DbTypeRegister(NSErr_t *errp, const char *name, DbParseFn_t func, ACLDbType_
     }
 	
     /*  Put it in the hash table  */
-    if (NULL == PR_HashTableAdd(ACLDbTypeHash, name, (void *)++cur_dbtype)) {
+    if (NULL == PR_HashTableAdd(ACLDbTypeHash, name, (void *)(intptr_t)++cur_dbtype)) {
         ACL_CritExit();
         return -1;
     }
-    *t = (ACLDbType_t) cur_dbtype;
+    *t = (ACLDbType_t) (intptr_t)cur_dbtype;
     ACLDbParseFnTable[cur_dbtype] = func;
 
     ACL_CritExit();
-- 
1.8.1.4