summaryrefslogtreecommitdiffstats
path: root/ldap
diff options
context:
space:
mode:
Diffstat (limited to 'ldap')
-rw-r--r--ldap/admin/src/cfg_sspt.c12
-rw-r--r--ldap/admin/src/create_instance.c22
-rw-r--r--ldap/admin/src/ds_remove_uninst.cpp7
-rw-r--r--ldap/admin/src/init_ds_env.c1
-rw-r--r--ldap/admin/src/instindex.cpp3
-rw-r--r--ldap/clients/dsgw/cgiutil.c33
-rw-r--r--ldap/clients/dsgw/ckdel.c6
-rw-r--r--ldap/clients/dsgw/ckdump.c6
-rw-r--r--ldap/clients/dsgw/ckget.c10
-rw-r--r--ldap/clients/dsgw/ckpurge.c5
-rw-r--r--ldap/clients/dsgw/ckput.c22
-rw-r--r--ldap/clients/dsgw/config.c28
-rw-r--r--ldap/clients/dsgw/cookie.c63
-rw-r--r--ldap/clients/dsgw/dbtdsgw.h1
-rw-r--r--ldap/clients/dsgw/domodify.c4
-rw-r--r--ldap/clients/dsgw/dsexpldif.c4
-rw-r--r--ldap/clients/dsgw/dsgw.h49
-rw-r--r--ldap/clients/dsgw/dsgwutil.c20
-rw-r--r--ldap/clients/dsgw/dsimpldif.c6
-rw-r--r--ldap/clients/dsgw/emitf.c76
-rw-r--r--ldap/clients/dsgw/entrydisplay.c13
-rw-r--r--ldap/clients/dsgw/htmlparse.c43
-rw-r--r--ldap/clients/dsgw/ldaputil.c11
-rw-r--r--ldap/clients/dsgw/templateindex.c6
-rw-r--r--ldap/clients/dsgw/tutor.c4
-rw-r--r--ldap/clients/orgchart/wrapper.c13
-rw-r--r--ldap/servers/plugins/acl/acldllmain.c1
-rw-r--r--ldap/servers/plugins/acl/acllas.c5
-rw-r--r--ldap/servers/plugins/chainingdb/cb_instance.c2
-rw-r--r--ldap/servers/plugins/chainingdb/cb_monitor.c10
-rw-r--r--ldap/servers/plugins/collation/dllmain.c1
-rw-r--r--ldap/servers/plugins/http/http_impl.c5
-rw-r--r--ldap/servers/plugins/pam_passthru/pam_ptdllmain.c1
-rw-r--r--ldap/servers/plugins/passthru/ptdllmain.c1
-rw-r--r--ldap/servers/plugins/presence/presence.c8
-rw-r--r--ldap/servers/plugins/replication/cl5_api.c3
-rw-r--r--ldap/servers/plugins/replication/repl.h5
-rw-r--r--ldap/servers/plugins/replication/repl5_inc_protocol.c10
-rw-r--r--ldap/servers/plugins/replication/repl5_replica.c2
-rw-r--r--ldap/servers/plugins/replication/repl5_tot_protocol.c1
-rw-r--r--ldap/servers/plugins/replication/windows_connection.c5
-rw-r--r--ldap/servers/plugins/replication/windows_inc_protocol.c6
-rw-r--r--ldap/servers/plugins/replication/windows_private.c8
-rw-r--r--ldap/servers/plugins/replication/windows_protocol_util.c23
-rw-r--r--ldap/servers/plugins/syntaxes/dllmain.c1
-rw-r--r--ldap/servers/slapd/abandon.c2
-rw-r--r--ldap/servers/slapd/auth.c2
-rw-r--r--ldap/servers/slapd/back-ldbm/archive.c6
-rw-r--r--ldap/servers/slapd/back-ldbm/dbhelp.c2
-rw-r--r--ldap/servers/slapd/back-ldbm/dllmain.c1
-rw-r--r--ldap/servers/slapd/back-ldbm/import-merge.c3
-rw-r--r--ldap/servers/slapd/back-ldbm/import.h8
-rw-r--r--ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c2
-rw-r--r--ldap/servers/slapd/back-ldbm/ldbm_config.c4
-rw-r--r--ldap/servers/slapd/back-ldbm/ldif2ldbm.c4
-rw-r--r--ldap/servers/slapd/back-ldif/dllmain.c1
-rw-r--r--ldap/servers/slapd/csn.c3
-rw-r--r--ldap/servers/slapd/csngen.c10
-rw-r--r--ldap/servers/slapd/daemon.c2
-rw-r--r--ldap/servers/slapd/eventq.c8
-rw-r--r--ldap/servers/slapd/filter.c4
-rw-r--r--ldap/servers/slapd/log.c2
-rw-r--r--ldap/servers/slapd/proto-slap.h8
-rw-r--r--ldap/servers/slapd/resourcelimit.c2
-rw-r--r--ldap/servers/slapd/result.c12
-rw-r--r--ldap/servers/slapd/schema.c10
-rw-r--r--ldap/servers/slapd/slapi-plugin.h7
-rw-r--r--ldap/servers/slapd/slapi-private.h15
-rw-r--r--ldap/servers/slapd/tools/ldclt/ldclt.c2
-rw-r--r--ldap/servers/slapd/tools/ldclt/repcheck.c6
-rw-r--r--ldap/servers/slapd/tools/ldclt/repslave.c5
-rw-r--r--ldap/servers/slapd/tools/migratecred.c3
-rw-r--r--ldap/servers/slapd/tools/pwenc.c2
73 files changed, 398 insertions, 304 deletions
diff --git a/ldap/admin/src/cfg_sspt.c b/ldap/admin/src/cfg_sspt.c
index 7cd85f98..c25c7b97 100644
--- a/ldap/admin/src/cfg_sspt.c
+++ b/ldap/admin/src/cfg_sspt.c
@@ -239,6 +239,12 @@ is_root_user(const char *name, QUERY_VARS* query)
#ifdef CGI_DEBUG
#include <stdarg.h>
+static void debug_log (const char* file, const char* format, ...)
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 2, 3)));
+#else
+ ;
+#endif
static void
debug_log (const char* file, const char* format, ...)
@@ -375,6 +381,12 @@ add_aci(LDAP* ld, char* DN, char* privilege)
list of strings to substitute in the format; basically just constructs
the correct aci string and passes it to add_aci
*/
+int add_aci_v(LDAP* ld, char* DN, char* format, ...)
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 3, 4)));
+#else
+ ;
+#endif
int
add_aci_v(LDAP* ld, char* DN, char* format, ...)
{
diff --git a/ldap/admin/src/create_instance.c b/ldap/admin/src/create_instance.c
index f599c299..4f718ae3 100644
--- a/ldap/admin/src/create_instance.c
+++ b/ldap/admin/src/create_instance.c
@@ -145,6 +145,13 @@ static int init_presence(char *sroot, server_config_s *cf, char *cs_path);
#endif
static char *make_error(char *fmt, ...)
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 1, 2)));
+#else
+ ;
+#endif
+
+static char *make_error(char *fmt, ...)
{
static char errbuf[ERR_SIZE];
va_list args;
@@ -661,6 +668,12 @@ char *chownconfig(char *sroot, char *user)
#define chownsearch(a, b)
#endif
+char *gen_script(char *s_root, char *name, char *fmt, ...)
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 3, 4)));
+#else
+ ;
+#endif
char *gen_script(char *s_root, char *name, char *fmt, ...)
{
@@ -715,6 +728,12 @@ char *gen_script(char *s_root, char *name, char *fmt, ...)
}
char *gen_perl_script(char *s_root, char *cs_path, char *name, char *fmt, ...)
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 4, 5)));
+#else
+ ;
+#endif
+char *gen_perl_script(char *s_root, char *cs_path, char *name, char *fmt, ...)
{
char myperl[PATH_SIZE];
char fn[PATH_SIZE];
@@ -1356,8 +1375,7 @@ create_scripts(server_config_s *cf, char *param_name)
/* ---------------------- Update server script files ---------------------- */
int update_server(server_config_s *cf)
{
- char line[PATH_SIZE], *t, *sroot = cf->sroot;
- char subdir[PATH_SIZE];
+ char *t;
char error_param[BIG_LINE] = {0};
#if defined( SOLARIS )
diff --git a/ldap/admin/src/ds_remove_uninst.cpp b/ldap/admin/src/ds_remove_uninst.cpp
index 79fef790..118c5d55 100644
--- a/ldap/admin/src/ds_remove_uninst.cpp
+++ b/ldap/admin/src/ds_remove_uninst.cpp
@@ -80,6 +80,13 @@ extern "C" {
#include "setupapi.h"
#define MAX_STR_SIZE 512
+static void dsLogMessage(const char *level, const char *which,
+ const char *format, ...)
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 3, 4)));
+#else
+ ;
+#endif
static InstallLog *installLog = NULL;
diff --git a/ldap/admin/src/init_ds_env.c b/ldap/admin/src/init_ds_env.c
index f291041c..c4a1ce49 100644
--- a/ldap/admin/src/init_ds_env.c
+++ b/ldap/admin/src/init_ds_env.c
@@ -48,6 +48,7 @@
#include "libadminutil/distadm.h"
#include "init_ds_env.h"
#include "dsalib.h"
+#include "prprf.h"
int init_ds_env()
{
diff --git a/ldap/admin/src/instindex.cpp b/ldap/admin/src/instindex.cpp
index 6821ec8a..83ebe45a 100644
--- a/ldap/admin/src/instindex.cpp
+++ b/ldap/admin/src/instindex.cpp
@@ -55,7 +55,7 @@
#include <string.h>
/* --------------------------------- main --------------------------------- */
-
+#if NEEDED_FOR_DEBUGGING
static void
printInfo(int argc, char *argv[], char *envp[], FILE* fp)
{
@@ -76,6 +76,7 @@ printInfo(int argc, char *argv[], char *envp[], FILE* fp)
fprintf(fp, "#####################################\n");
}
+#endif
#if defined (__hpux) && defined (__ia64)
int main(int argc, char *argv[], char *envp[])
diff --git a/ldap/clients/dsgw/cgiutil.c b/ldap/clients/dsgw/cgiutil.c
index 85437cf9..965a28f9 100644
--- a/ldap/clients/dsgw/cgiutil.c
+++ b/ldap/clients/dsgw/cgiutil.c
@@ -236,7 +236,7 @@ dsgw_get_cgi_var(char *varname, int required)
if ( required == DSGW_CGIVAR_REQUIRED && ans == NULL ) {
char errbuf[ 256 ];
- PR_snprintf( errbuf, 256,
+ PR_snprintf( errbuf, sizeof(errbuf),
XP_GetClientStr(DBT_missingFormDataElement100s_), varname );
dsgw_error( DSGW_ERR_BADFORMDATA, errbuf, DSGW_ERROPT_EXIT, 0, NULL );
}
@@ -325,21 +325,24 @@ dsgw_string_to_vec(char *in)
vars++;
ans = (char **) dsgw_ch_malloc((sizeof(char *)) * (vars+1));
-
- x=0;
- /* strtok() is not MT safe, but it is okay to call here because it is used in monothreaded env */
- tmp = strtok(in, "&");
- ans[x]=dsgw_ch_strdup(tmp);
- dsgw_form_unescape(ans[x++]);
-
- while((tmp = strtok(NULL, "&"))) {
- if ( strchr( tmp, '=' ) == NULL ) {
- break;
+ if (ans) {
+ x=0;
+ /* strtok() is not MT safe, but it is okay to call here because it is used in monothreaded env */
+ tmp = strtok(in, "&");
+ if (tmp && *tmp && strchr(tmp, '=')) {
+ ans[x]=dsgw_ch_strdup(tmp);
+ dsgw_form_unescape(ans[x++]);
+
+ while((x <= vars) && (tmp = strtok(NULL, "&"))) {
+ if ( strchr( tmp, '=' ) == NULL ) {
+ break;
+ }
+ ans[x] = dsgw_ch_strdup(tmp);
+ dsgw_form_unescape(ans[x++]);
+ }
+ }
+ ans[x] = NULL;
}
- ans[x] = dsgw_ch_strdup(tmp);
- dsgw_form_unescape(ans[x++]);
- }
- ans[x] = NULL;
return(ans);
}
diff --git a/ldap/clients/dsgw/ckdel.c b/ldap/clients/dsgw/ckdel.c
index fa785f4d..596499b4 100644
--- a/ldap/clients/dsgw/ckdel.c
+++ b/ldap/clients/dsgw/ckdel.c
@@ -45,12 +45,16 @@
main( int argc, char **argv)
{
char cookie[ 512 ];
+ char *ptr;
int rc;
printf( "Remove an entry to the cookie database\n" );
printf( "cookie: " );
- gets( cookie );
+ fgets( cookie, sizeof(cookie), stdin );
+ if (ptr = strchr(cookie, '\n')) {
+ *ptr = 0;
+ }
rc = dsgw_delcookie( cookie );
if ( rc == 0 ) {
diff --git a/ldap/clients/dsgw/ckdump.c b/ldap/clients/dsgw/ckdump.c
index 5975ed5a..7b0cc54d 100644
--- a/ldap/clients/dsgw/ckdump.c
+++ b/ldap/clients/dsgw/ckdump.c
@@ -44,12 +44,6 @@
main()
{
- char *p;
- time_t expires;
- char dn[ 512 ];
- char pw[ 512 ];
- char expsec[ 512 ];
-
#ifdef notdef /* this was some testing code... */
{
char *ck, *r, *d, *p;
diff --git a/ldap/clients/dsgw/ckget.c b/ldap/clients/dsgw/ckget.c
index 6a01aabd..df48500e 100644
--- a/ldap/clients/dsgw/ckget.c
+++ b/ldap/clients/dsgw/ckget.c
@@ -55,9 +55,15 @@ main()
printf( "Retrieve an entry from the cookie database\n" );
printf( "cookie: " );
- gets( cookie );
+ fgets( cookie, sizeof(cookie), stdin );
+ if (p = strchr(cookie, '\n')) {
+ *p = 0;
+ }
printf( "dn: " );
- gets( dn );
+ fgets( dn, sizeof(dn), stdin );
+ if (p = strchr(dn, '\n')) {
+ *p = 0;
+ }
rc = dsgw_ckdn2passwd( cookie, dn, &pw );
if ( rc == 0 ) {
diff --git a/ldap/clients/dsgw/ckpurge.c b/ldap/clients/dsgw/ckpurge.c
index cc40037c..1f9bc30f 100644
--- a/ldap/clients/dsgw/ckpurge.c
+++ b/ldap/clients/dsgw/ckpurge.c
@@ -44,11 +44,6 @@
main()
{
- char *p;
- time_t expires;
- char dn[ 512 ];
- char pw[ 512 ];
- char expsec[ 512 ];
int np = 0;
time_t last;
FILE *fp;
diff --git a/ldap/clients/dsgw/ckput.c b/ldap/clients/dsgw/ckput.c
index ebf5c2cc..42baf85f 100644
--- a/ldap/clients/dsgw/ckput.c
+++ b/ldap/clients/dsgw/ckput.c
@@ -59,17 +59,18 @@ main( int argc, char **argv)
SEC_RNGInit();
SEC_SystemInfoForRNG();
+ dn[0] = pw[0] = lifesec[0] = 0;
if ( argc > 1 ) {
while (( c = getopt( argc, argv, "d:l:p:" )) != EOF ) {
switch ( c ) {
case 'd':
- strcpy( dn, optarg );
+ PL_strncpyz( dn, optarg, sizeof(dn) );
break;
case 'l':
- strcpy( lifesec, optarg );
+ PL_strncpyz( lifesec, optarg, sizeof(lifesec) );
break;
case 'p':
- strcpy( pw, optarg );
+ PL_strncpyz( pw, optarg, sizeof(pw) );
break;
}
}
@@ -77,11 +78,20 @@ main( int argc, char **argv)
if ( strlen( dn ) == 0 || strlen( pw ) == 0 || strlen( lifesec ) == 0 ) {
printf( "dn: " );
- gets( dn );
+ fgets( dn, sizeof(dn), stdin );
+ if (p = strchr(dn, '\n')) {
+ *p = 0;
+ }
printf( "passwd: " );
- gets( pw );
+ fgets( pw, sizeof(pw), stdin );
+ if (p = strchr(pw, '\n')) {
+ *p = 0;
+ }
printf( "expires in how many seconds? " );
- gets( lifesec );
+ fgets( lifesec, sizeof(lifesec), stdin );
+ if (p = strchr(lifesec, '\n')) {
+ *p = 0;
+ }
}
lifetime = atol( lifesec );
diff --git a/ldap/clients/dsgw/config.c b/ldap/clients/dsgw/config.c
index 3cd0e73d..346f91f9 100644
--- a/ldap/clients/dsgw/config.c
+++ b/ldap/clients/dsgw/config.c
@@ -298,22 +298,6 @@ dsgw_read_config()
read_dsgwconfig( fname, NULL, gc->gc_admserv, 0 );
free( fname );
-#if 0
- /* if necessary, try to set path to certificate database */
-#ifndef DSGW_NO_SSL
- if ( gc->gc_ldapssl && gc->gc_securitypath == NULL ) {
- if ( gc->gc_admserv ) {
- if (( p = get_nsadm_var( "CertFile" )) != NULL ) {
- gc->gc_securitypath = dsgw_ch_malloc( strlen( p ) + 4 );
- sprintf( gc->gc_securitypath, "%s.db", p );
- }
- } else {
- gc->gc_securitypath = DSGW_DEFSECURITYPATH;
- }
- }
-#endif
-#endif
-
if ( browser_ignores_acceptcharset() ) {
set_dsgwcharset();
} else {
@@ -379,7 +363,7 @@ read_dsgwconfig( char *filename, char *locsuffix, int templatesonly, int binddnf
if ( strstr( filename, "dsgw-l10n.conf" ) != NULL ) {
return; /* ignore if it's dsgw-l10n.conf */
}
- PR_snprintf( buf, MAXPATHLEN + 100,
+ PR_snprintf( buf, sizeof(buf),
XP_GetClientStr(DBT_cannotOpenConfigFileSN_), filename );
dsgw_error( DSGW_ERR_BADCONFIG, buf, DSGW_ERROPT_EXIT, 0, NULL );
}
@@ -978,7 +962,7 @@ app_suffix (char *ldif, char *suffix)
return;
}
- PR_snprintf( tmpldif, 128, "%s.tmp", ldif);
+ PR_snprintf( tmpldif, sizeof(tmpldif), "%s.tmp", ldif);
if ( (newfp = fopen( tmpldif, "w" )) == NULL ) {
dsgw_emitf (XP_GetClientStr(DBT_AppSuffixCouldNotOpenTmpFileSN_),
ldif);
@@ -1199,7 +1183,7 @@ dsgw_update_dbswitch( dsgwconfig *cfgp, char *dbhandle, int erropts )
}
/* read old dbswitch.conf contents */
- PR_snprintf( oldfname, MAXPATHLEN, "%s/%s", userdb_path,
+ PR_snprintf( oldfname, sizeof(oldfname), "%s/%s", userdb_path,
DSGW_DBSWITCH_FILE );
if (( rc = dbconf_read_config_file( oldfname, &cip )) != LDAPU_SUCCESS ) {
report_ldapu_error( rc, DSGW_ERR_BADCONFIG, erropts );
@@ -1207,10 +1191,10 @@ dsgw_update_dbswitch( dsgwconfig *cfgp, char *dbhandle, int erropts )
}
/* write db info to new file, replacing information for "dbhandle" */
- PR_snprintf( newfname, MAXPATHLEN, "%s/%s", userdb_path,
+ PR_snprintf( newfname, sizeof(newfname), "%s/%s", userdb_path,
DSGW_DBSWITCH_TMPFILE );
if (( newfp = fopen( newfname, "w" )) == NULL ) {
- PR_snprintf( buf, MAXPATHLEN + 100,
+ PR_snprintf( buf, sizeof(buf),
XP_GetClientStr(DBT_cannotOpenConfigFileSForWritingN_), newfname );
dsgw_error( DSGW_ERR_UPDATE_DBSWITCH, buf, erropts, 0, NULL );
return( -1 );
@@ -1693,7 +1677,7 @@ fp_parse_line(
for ( token = strtok_quote( line, " \t" ); token != NULL;
token = strtok_quote( NULL, " \t" ) ) {
if ( *argcp == MAXARGS ) {
- PR_snprintf( buf, 20,
+ PR_snprintf( buf, sizeof(buf),
XP_GetClientStr(DBT_maxD_), MAXARGS );
dsgw_error( DSGW_ERR_CONFIGTOOMANYARGS, buf,
DSGW_ERROPT_EXIT, 0, NULL );
diff --git a/ldap/clients/dsgw/cookie.c b/ldap/clients/dsgw/cookie.c
index 028dd1a9..681d10e2 100644
--- a/ldap/clients/dsgw/cookie.c
+++ b/ldap/clients/dsgw/cookie.c
@@ -144,8 +144,8 @@ dsgw_mkrndstr()
PK11_ConfigurePKCS11(NULL, NULL, tokDes, ptokDes, NULL, NULL, NULL, NULL, 0, 0 );
/*NSS_NoDB_Init(NULL);*/
dsgw_initNSS();
- PK11_GenerateRandom(buf, RNDBUFLEN);
- return( buf2str( buf, RNDBUFLEN ));
+ PK11_GenerateRandom(buf, sizeof(buf));
+ return( buf2str( buf, sizeof(buf) ));
}
@@ -162,7 +162,7 @@ dsgw_opencookiedb()
#define F_OK 0
#endif
#endif
- sprintf(cdb, "%s.%s", DSGW_COOKIEDB_FNAME, context);
+ PR_snprintf(cdb, sizeof(cdb), "%s.%s", DSGW_COOKIEDB_FNAME, context);
if ( access( cdb, F_OK ) == 0 ) {
fp = fopen( cdb, "r+" );
@@ -253,7 +253,7 @@ dsgw_ckdn2passwd( char *rndstr, char *dn, char **ret_pw )
}
for (;;) {
- if ( fgets( buf, CKBUFSIZ, fp ) == NULL ) {
+ if ( fgets( buf, sizeof(buf), fp ) == NULL ) {
dsgw_closecookiedb( fp );
#ifdef DSGW_DEBUG
dsgw_log( "dsgw_ckdn2passwd: cookie <%s> not found in db\n",
@@ -433,14 +433,14 @@ dsgw_delcookie( char *cookie )
if (( fp = dsgw_opencookiedb()) == NULL ) {
return -1;
}
- fgets( buf, CKBUFSIZ, fp );
+ fgets( buf, sizeof(buf), fp );
if ( strncmp( buf, "lastpurge:", 10 )) {
dsgw_closecookiedb( fp );
return -1;
}
rc = DSGW_CKDB_KEY_NOT_PRESENT;
for (;;) {
- if ( fgets( buf, CKBUFSIZ, fp ) == NULL ) {
+ if ( fgets( buf, sizeof(buf), fp ) == NULL ) {
break;
}
if ( strncmp( buf, rndstr, CKLEN )) {
@@ -513,7 +513,7 @@ dsgw_getlastpurged( FILE *fp )
pos = ftell( fp );
fseek( fp, 0L, SEEK_SET );
- fgets( buf, CKBUFSIZ, fp );
+ fgets( buf, sizeof(buf), fp );
if ( strncmp( buf, "lastpurge:", 10 )) {
ret = (time_t) 0L;
} else {
@@ -553,7 +553,7 @@ dsgw_purgedatabase( char *dn )
size_t csize; /* current size of file */
char cdb[MAXPATHLEN]; /*DSGW_COOKIEDB_FNAME + context*/
- sprintf(cdb, "%s.%s", DSGW_COOKIEDB_FNAME, context);
+ PR_snprintf(cdb, sizeof(cdb), "%s.%s", DSGW_COOKIEDB_FNAME, context);
if (( fp = dsgw_opencookiedb()) == NULL ) {
return -1;
@@ -576,10 +576,11 @@ dsgw_purgedatabase( char *dn )
char *p;
char *dbdn;
int nukeit;
+ size_t maxlen = sizeof(expbuf);
nukeit = 0;
- if ( fgets( buf, CKBUFSIZ, fp ) == NULL ) {
+ if ( fgets( buf, sizeof(buf), fp ) == NULL ) {
break;
}
if ( strncmp( buf, "lastpurge:", 10 ) == 0 ) {
@@ -596,8 +597,13 @@ dsgw_purgedatabase( char *dn )
dsgw_closecookiedb( fp );
return -1;
}
- strncpy( expbuf, exp, p - exp );
- expbuf[ p - exp ] = '\0';
+ if ((p - exp) < maxlen) {
+ maxlen = p - exp;
+ } else {
+ maxlen--; /* need a length, not a count */
+ }
+ strncpy( expbuf, exp, maxlen );
+ expbuf[ maxlen ] = '\0';
time( &now );
/* Get the entry's DN */
@@ -678,7 +684,7 @@ dsgw_traverse_db()
return;
}
- if ( fgets( buf, CKBUFSIZ, fp ) == NULL ) {
+ if ( fgets( buf, sizeof(buf), fp ) == NULL ) {
dsgw_closecookiedb( fp );
printf( "Cookie database is empty (no lastpurge line)\n" );
return;
@@ -686,8 +692,9 @@ dsgw_traverse_db()
puts( buf );
for (;;) {
+ size_t maxlen = sizeof(expbuf);
char *p;
- if ( fgets( buf, CKBUFSIZ, fp ) == NULL ) {
+ if ( fgets( buf, sizeof(buf), fp ) == NULL ) {
dsgw_closecookiedb( fp );
printf( "%d entries, %d expired\n", total, expired );
return;
@@ -702,8 +709,13 @@ dsgw_traverse_db()
return;
}
printf( "%s", buf );
- strncpy( expbuf, exp, p - exp + 1 );
- expbuf[ p - exp + 1 ] = '\0';
+ if ((p - exp + 1) < maxlen) {
+ maxlen = p - exp + 1;
+ } else {
+ maxlen--; /* need a length, not a count */
+ }
+ strncpy( expbuf, exp, maxlen );
+ expbuf[ maxlen ] = '\0';
time( &now );
total++;
if ( now > atol( expbuf )) {
@@ -752,6 +764,7 @@ dsgw_mkcookie( char *dn, char *password, time_t lifetime, int *err )
return NULL;
}
+ /* richm: replace with PR_smprintf */
ckbuf = dsgw_ch_malloc( strlen( DSGW_CKHDR ) + strlen( r ) +
strlen( edn ) + strlen( DSGW_AUTHCKNAME ) + 2 + 20 );
ckbuf[ 0 ] = '\0';
@@ -770,26 +783,6 @@ dsgw_mkcookie( char *dn, char *password, time_t lifetime, int *err )
-#if 0
-/*
- * Given a time_t, return a GMTString representation of that time.
- */
-char *
-dsgw_t2gmts( time_t cktime )
-{
- time_t tnl;
- struct tm *pt;
-#define TBUFSIZE 40
- char tbuf[ TBUFSIZE ];
-
- tnl = time( NULL );
- pt = gmtime( &tnl );
- (void)strftime( tbuf, (size_t)TBUFSIZE, "%A, %d-%b-%y %T GMT", pt);
- return( dsgw_ch_strdup( tbuf ));
-}
-#endif
-
-
/*
* Password obfuscation, etc.
* There is no real security here -- we just encrypt using a hard-coded key.
diff --git a/ldap/clients/dsgw/dbtdsgw.h b/ldap/clients/dsgw/dbtdsgw.h
index 78546b64..9a7a01ea 100644
--- a/ldap/clients/dsgw/dbtdsgw.h
+++ b/ldap/clients/dsgw/dbtdsgw.h
@@ -463,5 +463,6 @@ BEGIN_STR(dsgw)
ResDef( DBT_missingArgumentForOrgChartURLDirectiv_, 412, "Missing argument for \"url-orgchart-base\" directive\n" )/*extracted from config.c*/
ResDef( DBT_missingArgumentForOrgChartSearchAttr_ , 413, "Missing argument for \"orgchart-attrib-farleft-rdn\" directive\n" )/*extracted from config.c*/
ResDef( DBT_theCharsetIsNotSupported , 414, "The charset is not supported\n" )
+ ResDef( DBT_invalidTemplateVarLen, 415, "The string length %d of template variable \"%s\" is too long\n" )
END_STR(dsgw)
diff --git a/ldap/clients/dsgw/domodify.c b/ldap/clients/dsgw/domodify.c
index 0d935f01..6ff48403 100644
--- a/ldap/clients/dsgw/domodify.c
+++ b/ldap/clients/dsgw/domodify.c
@@ -153,7 +153,7 @@ post_request()
}
if ( !quiet ) {
- PR_snprintf( buf, 256,
+ PR_snprintf( buf, sizeof(buf),
XP_GetClientStr(DBT_SDirectoryEntry_), changedesc );
dsgw_html_begin( buf, 1 );
} else {
@@ -413,7 +413,7 @@ static int
entry_modify_or_add( LDAP *ld, char *dn, int add, int *pwdchangedp )
{
int lderr, i, j, opoffset, modop, mls, unique, unchanged_count;
- char *varname, *varvalue, *retval, *attr, *p, **vals, **unchanged_attrs;
+ char *varname, *varvalue, *attr, *p, **vals, **unchanged_attrs;
char *ntuserid = NULL;
LDAPMod **pmods;
diff --git a/ldap/clients/dsgw/dsexpldif.c b/ldap/clients/dsgw/dsexpldif.c
index 79c0cdf3..66d0b040 100644
--- a/ldap/clients/dsgw/dsexpldif.c
+++ b/ldap/clients/dsgw/dsexpldif.c
@@ -124,14 +124,14 @@ handle_post()
if (gc->gc_localdbconf == NULL) {
/* remote */
- PR_snprintf (cmd, BIG_LINE,
+ PR_snprintf (cmd, sizeof(cmd),
"./%s -b \"%s\" -h %s -p %d \"objectclass=*\" > %s 2> %s",
DSGW_LDAPSEARCH, gc->gc_ldapsearchbase, gc->gc_ldapserver,
gc->gc_ldapport, ldiffile, DSGW_NULL_DEVICE);
}
else {
/* local database */
- PR_snprintf (cmd, BIG_LINE,
+ PR_snprintf (cmd, sizeof(cmd),
"./%s -b \"\" -C %s \"objectclass=*\" > %s 2> %s",
DSGW_LDAPSEARCH, gc->gc_localdbconf, ldiffile, DSGW_NULL_DEVICE);
}
diff --git a/ldap/clients/dsgw/dsgw.h b/ldap/clients/dsgw/dsgw.h
index a35d2fb7..cbffeec8 100644
--- a/ldap/clients/dsgw/dsgw.h
+++ b/ldap/clients/dsgw/dsgw.h
@@ -825,7 +825,12 @@ void dsgw_remove_leading_and_trailing_spaces( char **sp );
int dsgw_parse_cookie( char *cookie, char **rndstr, char **dn );
char *dsgw_getvp( int cginum );
#ifdef DSGW_DEBUG
-void dsgw_log( char *fmt, ... );
+void dsgw_log( char *fmt, ... )
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 1, 2)));
+#else
+ ;
+#endif
void dsgw_logstringarray( char *arrayname, char **strs );
void dsgw_log_out (const char* s, size_t n);
#else
@@ -875,16 +880,36 @@ void dsgw_html_href( char *urlprefix, char *url, char *label, char *value,
void dsgw_strcat_escaped( char *s1, const char *s2 );
char *dsgw_strdup_escaped( const char *s );
void dsgw_substitute_and_output( char *s, char *tag, char *value, int escape );
-void dsgw_form_begin( const char* name, const char* format, ... );
+void dsgw_form_begin( const char* name, const char* format, ... )
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 2, 3)));
+#else
+ ;
+#endif
char *dsgw_strdup_with_entities( char *s, int *madecopyp );
void dsgw_HTML_emits( char * );
void dsgw_emit_cgi_var( int argc, char **argv );
-void dsgw_emit_button( int argc, char **argv, const char* format, ... );
+void dsgw_emit_button( int argc, char **argv, const char* format, ... )
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 3, 4)));
+#else
+ ;
+#endif
void dsgw_emit_alertForm();
-void dsgw_emit_alert( const char* frame, const char* windowOptions, const char* fmt, ... );
+void dsgw_emit_alert( const char* frame, const char* windowOptions, const char* fmt, ... )
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 3, 4)));
+#else
+ ;
+#endif
void dsgw_emit_confirmForm();
void dsgw_emit_confirm( const char* frame, const char* yes, const char* no,
- const char* windowOptions, int enquote, const char* fmt, ... );
+ const char* windowOptions, int enquote, const char* fmt, ... )
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 6, 7)));
+#else
+ ;
+#endif
/*
* in htmlparse.c:
@@ -983,7 +1008,12 @@ void dsgw_emit_auth_dest( char *binddn, char* authdesturl );
* in emitf.c
*/
int dsgw_emits (const char* s); /* like fputs(s, stdout) */
-int dsgw_emitf (const char* format, ...); /* like printf */
+int dsgw_emitf (const char* format, ...) /* like printf */
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 1, 2)));
+#else
+ ;
+#endif
int dsgw_emitfv (const char* format, va_list argl);
char* dsgw_emit_converts_to (char* charset);
int is_UTF_8 (const char* charset);
@@ -995,7 +1025,12 @@ size_t dsgw_fputn (FILE*, const char* buf, size_t len);
void dsgw_quotation_begin (int kind);
void dsgw_quotation_end();
int dsgw_quote_emits (int kind, const char* s);
-int dsgw_quote_emitf (int kind, const char* format, ...);
+int dsgw_quote_emitf (int kind, const char* format, ...)
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 2, 3)));
+#else
+ ;
+#endif
/*
* in collate.c
diff --git a/ldap/clients/dsgw/dsgwutil.c b/ldap/clients/dsgw/dsgwutil.c
index afb16f74..a353f041 100644
--- a/ldap/clients/dsgw/dsgwutil.c
+++ b/ldap/clients/dsgw/dsgwutil.c
@@ -927,7 +927,7 @@ dsgw_get_tmp_log_dir()
#endif
install_dir = getenv("NETSITE_ROOT");
if (install_dir != NULL) {
- sprintf(tmp_log, "%s/tmp/dsgw", install_dir);
+ PR_snprintf(tmp_log, sizeof(tmp_log), "%s/tmp/dsgw", install_dir);
#if defined( XP_WIN32 )
for(ilen=0; ilen < strlen(tmp_log); ilen++)
{
@@ -937,15 +937,15 @@ dsgw_get_tmp_log_dir()
#endif /* XP_WIN32 */
} else {
#if defined( XP_WIN32 )
- ilen = strlen(tmp_dir);
GetTempPath( ilen+1, tmp_dir );
+ ilen = strlen(tmp_dir);
/* Remove trailing slash. */
pch = tmp_dir[ilen-1];
if( pch == '\\' || pch == '/' )
tmp_dir[ilen-1] = '\0';
- sprintf(tmp_log, "%s\\DSGW", tmp_dir);
+ PR_snprintf(tmp_log, sizeof(tmp_log), "%s\\DSGW", tmp_dir);
#else
- sprintf(tmp_log, "/tmp/dsgw");
+ PR_snprintf(tmp_log, sizeof(tmp_log), "/tmp/dsgw");
#endif
}
return tmp_log;
@@ -964,7 +964,7 @@ dsgw_log_out (const char* s, size_t n)
#else
"%s/%.50s.out";
#endif
- PR_snprintf( fname, 256, format, dsgw_get_tmp_log_dir(), progname );
+ PR_snprintf( fname, sizeof(fname), format, dsgw_get_tmp_log_dir(), progname );
log_out_fp = fopen( fname, "w" );
}
if (log_out_fp != NULL) {
@@ -996,14 +996,14 @@ dsgw_log( char *fmt, ... )
#else
"%s/%.50s";
#endif
- PR_snprintf( fname, 256, format, dsgw_get_tmp_log_dir(), progname );
+ PR_snprintf( fname, sizeof(fname), format, dsgw_get_tmp_log_dir(), progname );
if (( logfp = fopen( fname, "a+" )) == NULL ) {
return;
}
}
- memcpy( timebuf, ctime( &t ), 19 );
- timebuf[ 19 ] = '\0';
+ memcpy( timebuf, ctime( &t ), sizeof(timebuf)-1 );
+ timebuf[ sizeof(timebuf)-1 ] = '\0';
fprintf( logfp, "%s %s: ", timebuf, progname );
va_start( ap, fmt );
@@ -1327,7 +1327,7 @@ AcceptLangList(const char* AcceptLanguage,
}
}
for ( i=0 ; i<countLang ; i++ ) {
- strcpy(AcceptLanguageList[i],ptrLanguage[i]);
+ PL_strncpyz(AcceptLanguageList[i],ptrLanguage[i],sizeof(AcceptLanguageList[i]));
}
} else {
@@ -1336,7 +1336,7 @@ AcceptLangList(const char* AcceptLanguage,
cPtr = strtok(input,",");
while (cPtr) {
if (strlen(cPtr)<MAX_ACCEPT_LENGTH) { /* ignore if too long */
- strcpy(AcceptLanguageList[countLang++],cPtr);
+ PL_strncpyz(AcceptLanguageList[countLang++],cPtr,sizeof(AcceptLanguageList[i]));
if (countLang>=MAX_ACCEPT_LANGUAGE) break; /* quit if too many */
}
cPtr = strtok(NULL,",");
diff --git a/ldap/clients/dsgw/dsimpldif.c b/ldap/clients/dsgw/dsimpldif.c
index cceb7083..407fa662 100644
--- a/ldap/clients/dsgw/dsimpldif.c
+++ b/ldap/clients/dsgw/dsimpldif.c
@@ -148,17 +148,17 @@ handle_post()
if (gc->gc_localdbconf == NULL) {
/* remote */
- PR_snprintf (cmd, BIG_LINE, "./%s -a %s -h %s -p %d -f %s > %s 2>&1",
+ PR_snprintf (cmd, sizeof(cmd), "./%s -a %s -h %s -p %d -f %s > %s 2>&1",
DSGW_LDAPMODIFY, stop?"":"-c",gc->gc_ldapserver,
gc->gc_ldapport, ldiffile, DSGW_NULL_DEVICE);
}
else {
/* local database */
- PR_snprintf (cmd, BIG_LINE, "./%s -a %s -C %s -f %s > %s 2>&1",
+ PR_snprintf (cmd, sizeof(cmd), "./%s -a %s -C %s -f %s > %s 2>&1",
DSGW_LDAPMODIFY, stop?"":"-c", gc->gc_localdbconf, ldiffile,
DSGW_NULL_DEVICE);
}
- PR_snprintf (path, BIG_LINE, "%s%s", userdb_path, DSGW_TOOLSDIR);
+ PR_snprintf (path, sizeof(path), "%s%s", userdb_path, DSGW_TOOLSDIR);
chdir ( path );
fflush (stdout);
if (system (cmd) == 0) {
diff --git a/ldap/clients/dsgw/emitf.c b/ldap/clients/dsgw/emitf.c
index a1f85dde..a6352821 100644
--- a/ldap/clients/dsgw/emitf.c
+++ b/ldap/clients/dsgw/emitf.c
@@ -188,12 +188,12 @@ dsgw_vxprintf (dsgw_producer produce, void* parm,
char deffmt[DEFFMTC];
char* fmt = deffmt;
- size_t fmtc = DEFFMTC;
+ size_t fmtc = sizeof(deffmt);
const char* next;
const char* f;
- char buf [1024];
+ char buf [1024] = {0};
int i;
i = count_slots (format);
@@ -396,33 +396,33 @@ dsgw_vxprintf (dsgw_producer produce, void* parm,
}
/* produce a single argument */
switch (islot->type) {
- case TYPE_I: PR_snprintf (buf, 1024, fmt, argv[islot->arg].i); break;
- case TYPE_U: PR_snprintf (buf, 1024, fmt, argv[islot->arg].u); break;
- case TYPE_F: PR_snprintf (buf, 1024, fmt, argv[islot->arg].f); break;
- case TYPE_LI: PR_snprintf (buf, 1024, fmt, argv[islot->arg].li); break;
- case TYPE_LU: PR_snprintf (buf, 1024, fmt, argv[islot->arg].lu); break;
- case TYPE_LF: PR_snprintf (buf, 1024, fmt, argv[islot->arg].lf); break;
- case TYPE_P: PR_snprintf (buf, 1024, fmt, argv[islot->arg].p); break;
+ case TYPE_I: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].i); break;
+ case TYPE_U: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].u); break;
+ case TYPE_F: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].f); break;
+ case TYPE_LI: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].li); break;
+ case TYPE_LU: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].lu); break;
+ case TYPE_LF: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].lf); break;
+ case TYPE_P: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].p); break;
case TYPE_WIDTH:
case TYPE_PRECISION:
switch ((++islot)->type) {
- case TYPE_I: PR_snprintf (buf, 1024, fmt, argv[islot->arg].i); break;
- case TYPE_U: PR_snprintf (buf, 1024, fmt, argv[islot->arg].u); break;
- case TYPE_F: PR_snprintf (buf, 1024, fmt, argv[islot->arg].f); break;
- case TYPE_LI: PR_snprintf (buf, 1024, fmt, argv[islot->arg].li); break;
- case TYPE_LU: PR_snprintf (buf, 1024, fmt, argv[islot->arg].lu); break;
- case TYPE_LF: PR_snprintf (buf, 1024, fmt, argv[islot->arg].lf); break;
- case TYPE_P: PR_snprintf (buf, 1024, fmt, argv[islot->arg].p); break;
+ case TYPE_I: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].i); break;
+ case TYPE_U: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].u); break;
+ case TYPE_F: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].f); break;
+ case TYPE_LI: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].li); break;
+ case TYPE_LU: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].lu); break;
+ case TYPE_LF: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].lf); break;
+ case TYPE_P: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].p); break;
case TYPE_WIDTH:
case TYPE_PRECISION:
switch ((++islot)->type) {
- case TYPE_I: PR_snprintf (buf, 1024, fmt, argv[islot->arg].i); break;
- case TYPE_U: PR_snprintf (buf, 1024, fmt, argv[islot->arg].u); break;
- case TYPE_F: PR_snprintf (buf, 1024, fmt, argv[islot->arg].f); break;
- case TYPE_LI: PR_snprintf (buf, 1024, fmt, argv[islot->arg].li); break;
- case TYPE_LU: PR_snprintf (buf, 1024, fmt, argv[islot->arg].lu); break;
- case TYPE_LF: PR_snprintf (buf, 1024, fmt, argv[islot->arg].lf); break;
- case TYPE_P: PR_snprintf (buf, 1024, fmt, argv[islot->arg].p); break;
+ case TYPE_I: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].i); break;
+ case TYPE_U: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].u); break;
+ case TYPE_F: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].f); break;
+ case TYPE_LI: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].li); break;
+ case TYPE_LU: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].lu); break;
+ case TYPE_LF: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].lf); break;
+ case TYPE_P: PR_snprintf (buf, sizeof(buf), fmt, argv[islot->arg].p); break;
case TYPE_WIDTH:
case TYPE_PRECISION: goto bail; /* how did this happen? */
case TYPE_PERCENT:
@@ -647,7 +647,7 @@ dsgw_emitn (void* parm, const char* s, size_t n)
s += slen; /* advance pointer to next unconverted chars */
/* convert as many chars from s as will fit in buf */
result = dsgw_convert(DSGW_FROM_UTF8, emit_converter,
- &bufptr, CONVERT_BUFSIZE, &len,
+ &bufptr, sizeof(buf), &len,
s, n, &slen, &err);
/* write the converted chars to the output */
n = dsgw_emitq ((FILE*)parm, buf, len);
@@ -661,34 +661,6 @@ dsgw_emitn (void* parm, const char* s, size_t n)
return parm;
}
-#if 0
-static void
-dsgw_convert (void* parm, const char* s, size_t n)
- /* Transform the output, in a visually distinctive way.
- This function is intended for testing, only.
- */
-{
- while (parm && n > 0) {
- const size_t len = LDAP_UTF8LEN(s);
- if (len == 1 && *s >= '!' && *s <= '~') { /* ASCII */
- /* output the double-width variant of this character */
- unsigned c = (unsigned)*s - '!' + 0xFF01;
- unsigned char buf[3];
- buf[2] = 0x80 | (c & 0x3F); c >>= 6;
- buf[1] = 0x80 | (c & 0x3F); c >>= 6;
- buf[0] = 0xE0 | (c & 0x0F);
- parm = dsgw_emitn (parm, (char*)buf, 3);
- } else {
- parm = dsgw_emitn (parm, s, len);
- }
- if (parm) {
- n -= len;
- s += len;
- }
- }
-}
-#endif
-
int
dsgw_emits (const char* s)
/* This function works like fputs(s, stdout), except it
diff --git a/ldap/clients/dsgw/entrydisplay.c b/ldap/clients/dsgw/entrydisplay.c
index 3a1bbb29..506044b5 100644
--- a/ldap/clients/dsgw/entrydisplay.c
+++ b/ldap/clients/dsgw/entrydisplay.c
@@ -239,7 +239,9 @@ static void dsgw_value_free( void **ldvals, int binary ) ;
static char *dsgw_time(time_t secs_since_1970);
/* attribute syntax handler routines */
+#if NEEDED_FOR_DEBUGGING
static void ntdomain_display( struct dsgw_attrdispinfo *adip );
+#endif
static void ntuserid_display( struct dsgw_attrdispinfo *adip );
static void str_display( struct dsgw_attrdispinfo *adip );
static void str_edit( struct dsgw_attrdispinfo *adip );
@@ -1623,10 +1625,10 @@ binvalue_display( struct dsgw_attrdispinfo *adip )
memcpy( &iValue, bin_data.bv_val, sizeof( iValue ) );
if(( adip->adi_opts & DSGW_ATTROPT_DECIMAL ) != 0 )
- PR_snprintf( szFormat, 512, "%%lu" );
+ PR_snprintf( szFormat, sizeof(szFormat), "%%lu" );
else
- PR_snprintf( szFormat, 512, "%%#0%lu.%lux", bin_data.bv_len*2, bin_data.bv_len*2 );
- PR_snprintf( szFlags, 512, szFormat, iValue );
+ PR_snprintf( szFormat, sizeof(szFormat), "%%#0%lu.%lux", bin_data.bv_len*2, bin_data.bv_len*2 );
+ PR_snprintf( szFlags, sizeof(szFlags), szFormat, iValue );
fputs( szFlags, stdout );
@@ -1639,6 +1641,7 @@ binvalue_display( struct dsgw_attrdispinfo *adip )
}
}
+#if NEEDED_FOR_DEBUGGING
/*
* display handler for NT Domain Identifier string
*/
@@ -1671,7 +1674,7 @@ ntdomain_display( struct dsgw_attrdispinfo *adip )
}
}
-
+#endif
/*
@@ -3222,7 +3225,7 @@ dsgw_time(time_t secs_since_1970)
}
/* convert to utf8 */
- u_strToUTF8(obuf, BSIZ, NULL, dstr0, myStrlen, &err);
+ u_strToUTF8(obuf, sizeof(obuf), NULL, dstr0, myStrlen, &err);
if (err != U_ZERO_ERROR) {
dsgw_error( DSGW_ERR_LDAPGENERAL, NULL, DSGW_ERROPT_EXIT, err, NULL );
diff --git a/ldap/clients/dsgw/htmlparse.c b/ldap/clients/dsgw/htmlparse.c
index 3b0007fc..9aa2567f 100644
--- a/ldap/clients/dsgw/htmlparse.c
+++ b/ldap/clients/dsgw/htmlparse.c
@@ -202,14 +202,14 @@ void *condarg
} else if ( parse_status != DSGW_PARSE_STATUS_NO_OUTPUT &&
!strcmp(templates[ index ].name + 1, "CONTEXT ")) {
char line[ BIG_LINE ];
- PR_snprintf( line, BIG_LINE, templates[ index ].format, context);
+ PR_snprintf( line, sizeof(line), templates[ index ].format, context);
dsgw_emits( line );
} else if ( parse_status != DSGW_PARSE_STATUS_NO_OUTPUT ) {
/* I just can't believe there's no easy way to create
* a va_list. */
char line[ BIG_LINE ];
- PR_snprintf( line, BIG_LINE, templates[ index ].format,
+ PR_snprintf( line, sizeof(line), templates[ index ].format,
( *argc > 0 && vars[ 0 ] != NULL ) ? vars[ 0 ]: "",
( *argc > 1 && vars[ 1 ] != NULL ) ? vars[ 1 ]: "",
( *argc > 2 && vars[ 2 ] != NULL ) ? vars[ 2 ]: "",
@@ -377,14 +377,14 @@ dsgw_pageheader(int argc, char **argv)
dsgw_emits("<center><table border=2 width=100%%>\n");
- util_snprintf(line, BIG_LINE, "<tr>");
+ util_snprintf(line, sizeof(line), "<tr>");
dsgw_emits(line);
- util_snprintf(line, BIG_LINE, "<td align=center width=100%%>");
+ util_snprintf(line, sizeof(line), "<td align=center width=100%%>");
dsgw_emits(line);
- util_snprintf(line, BIG_LINE, "<hr size=0 width=0>");
+ util_snprintf(line, sizeof(line), "<hr size=0 width=0>");
dsgw_emits(line);
- util_snprintf(line, BIG_LINE, "<FONT size=+2><b>%s</b></FONT>"
+ util_snprintf(line, sizeof(line), "<FONT size=+2><b>%s</b></FONT>"
"<hr size=0 width=0>"
"</th>", ( argc > 0 ) ? argv[0] : "" );
dsgw_emits(line);
@@ -399,7 +399,7 @@ dsgw_title( int argc, char **argv)
char line[BIG_LINE];
dsgw_emits("<HTML>");
dsgw_head_begin();
- util_snprintf(line, BIG_LINE, "\n<TITLE>%s</TITLE></HEAD>\n"
+ util_snprintf(line, sizeof(line), "\n<TITLE>%s</TITLE></HEAD>\n"
"<BODY %s>\n", ( argc > 0 ) ? argv[0] : "", dsgw_html_body_colors );
dsgw_emits(line);
}
@@ -411,10 +411,10 @@ dsgw_body( int argc, char **argv)
char line[BIG_LINE];
if ( argc > 0 ) {
- util_snprintf(line, BIG_LINE, "<BODY %s %s>\n", dsgw_html_body_colors,
+ util_snprintf(line, sizeof(line), "<BODY %s %s>\n", dsgw_html_body_colors,
( argc > 0 ) ? argv[0] : "" );
} else {
- util_snprintf(line, BIG_LINE, "<BODY %s>\n", dsgw_html_body_colors );
+ util_snprintf(line, sizeof(line), "<BODY %s>\n", dsgw_html_body_colors );
}
dsgw_emits(line);
@@ -451,14 +451,14 @@ dsgw_submit(int verify, char **vars)
if(!verify) {
char outstr[256];
- PR_snprintf(outstr, 256, "<td width=50%% align=center>"
+ PR_snprintf(outstr, sizeof(outstr), "<td width=50%% align=center>"
"<input type=submit value=\"%s\">"
"</td>\n",
XP_GetClientStr(DBT_ok_1));
dsgw_emits(outstr);
} else {
char outstr[256];
- PR_snprintf(outstr, 256, "<td width=50%% align=center>"
+ PR_snprintf(outstr, sizeof(outstr), "<td width=50%% align=center>"
"<input type=button value=\"%s\" "
"onclick=\"verify(this.form)\">"
"</td>\n",
@@ -467,7 +467,7 @@ dsgw_submit(int verify, char **vars)
}
{
char outstr[256];
- PR_snprintf(outstr, 256, "<td width=50%% align=center>"
+ PR_snprintf(outstr, sizeof(outstr), "<td width=50%% align=center>"
"<input type=reset value=\"%s\"></td>\n",
XP_GetClientStr(DBT_reset_));
dsgw_emits(outstr);
@@ -489,12 +489,12 @@ dsgw_dialogsubmit(void)
dsgw_emits("<center><table border=2 width=100%%><tr>");
- PR_snprintf(outstr, 256, "<td width=50%% align=center>"
+ PR_snprintf(outstr, sizeof(outstr), "<td width=50%% align=center>"
"<input type=submit value=\"%s\">"
"</td>\n",
XP_GetClientStr(DBT_done_));
dsgw_emits(outstr);
- PR_snprintf(outstr, 256, "<td width=50%% align=center>"
+ PR_snprintf(outstr, sizeof(outstr), "<td width=50%% align=center>"
"<input type=button value=\"%s\" "
"onClick=\"top.close()\"></td>\n",
XP_GetClientStr(DBT_cancel_2));
@@ -707,8 +707,19 @@ int *argc
}
} else {
if ( isvar != -1 ) {
- isvar += LDAP_UTF8COPY(scratch + isvar, string);
- scratch[ isvar ] = '\0';
+ /* check for scratch overflow */
+ if ((strlen(string) + isvar) < sizeof(scratch)) {
+ isvar += LDAP_UTF8COPY(scratch + isvar, string);
+ scratch[ isvar ] = '\0';
+ } else {
+ char msg[BUFSIZ];
+ /* error - buffer overflow */
+ PR_snprintf(msg, sizeof(msg), XP_GetClientStr(DBT_invalidTemplateVarLen),
+ strlen(string), string);
+ template_error(msg);
+ *argc = 0;
+ return NULL;
+ }
} else {
if ( *string == DIRECTIVE_END ) {
break;
diff --git a/ldap/clients/dsgw/ldaputil.c b/ldap/clients/dsgw/ldaputil.c
index d2a396f0..750fee67 100644
--- a/ldap/clients/dsgw/ldaputil.c
+++ b/ldap/clients/dsgw/ldaputil.c
@@ -50,6 +50,7 @@
#include <io.h>
#include <fcntl.h>
#endif
+#include "libadminutil/distadm.h"
static dsgwtmplinfo *init_listdisplay( char *tmplname, unsigned long options );
static int do_search( dsgwtmplinfo *tip, LDAP *ld, char *base, int scope,
@@ -1305,7 +1306,7 @@ uid2dn( LDAP *ld, char *uid, char *base, int *ldaprc, char **lderrtxtp,
*errsp = XP_GetClientStr(DBT_invalidUserIdOrNullLdapHandle_);
return NULL;
}
- PR_snprintf( filtbuf, 85, "uid=%s", uid );
+ PR_snprintf( filtbuf, sizeof(filtbuf), "uid=%s", uid );
if (( rc = ldap_search_s( ld, base, LDAP_SCOPE_SUBTREE, filtbuf,
attrs, 1, &result )) != LDAP_SUCCESS ) {
@@ -1423,10 +1424,10 @@ dsgw_emit_location_popup( LDAP *ld, int argc, char **argv, int erropts )
}
if ( count > 1 ) {
- util_snprintf( line, BIG_LINE, "%s\n<SELECT NAME=\"%s\">\n",
+ util_snprintf( line, sizeof(line), "%s\n<SELECT NAME=\"%s\">\n",
prefix, varname );
} else {
- util_snprintf( line, BIG_LINE, "<INPUT TYPE=\"hidden\" NAME=\"%s\" ",
+ util_snprintf( line, sizeof(line), "<INPUT TYPE=\"hidden\" NAME=\"%s\" ",
varname );
}
dsgw_emits( line );
@@ -1463,7 +1464,7 @@ dsgw_emit_location_popup( LDAP *ld, int argc, char **argv, int erropts )
}
if ( count > 1 ) {
- util_snprintf( line, BIG_LINE, "</SELECT>\n%s\n", suffix );
+ util_snprintf( line, sizeof(line), "</SELECT>\n%s\n", suffix );
dsgw_emits( line );
}
@@ -1500,7 +1501,7 @@ emit_one_loc_dn( char *dn, char *friendlyname, char *rootname, int only_one )
}
}
- util_snprintf( line, BIG_LINE, " VALUE=\"%s\">%s\n", escapeddn,
+ util_snprintf( line, sizeof(line), " VALUE=\"%s\">%s\n", escapeddn,
only_one ? "" : friendlyname );
free( escapeddn );
if ( rdns != NULL ) {
diff --git a/ldap/clients/dsgw/templateindex.c b/ldap/clients/dsgw/templateindex.c
index 40df74f7..80c40c4b 100644
--- a/ldap/clients/dsgw/templateindex.c
+++ b/ldap/clients/dsgw/templateindex.c
@@ -63,11 +63,11 @@ char **ds_get_file_list( char *dir )
if( ( dir == NULL ) || (strlen( dir ) == 0) )
return NULL;
- if( ( ret = malloc( sizeof( char * ) ) ) == NULL )
+ if( ( ret = malloc( sizeof( char * ) * 2 ) ) == NULL )
return NULL;
- strcpy(szWildcardFileSpec, dir);
- strcat(szWildcardFileSpec, "/*");
+ PL_strncpyz(szWildcardFileSpec, dir, sizeof(szWildcardFileSpec));
+ PL_strcatn(szWildcardFileSpec, sizeof(szWildcardFileSpec), "/*");
hFile = _findfirst( szWildcardFileSpec, &fileinfo);
if( hFile == -1 )
diff --git a/ldap/clients/dsgw/tutor.c b/ldap/clients/dsgw/tutor.c
index 6803e470..11b3a564 100644
--- a/ldap/clients/dsgw/tutor.c
+++ b/ldap/clients/dsgw/tutor.c
@@ -124,7 +124,7 @@ void _my_return_html_file(char *filename, char *base) {
*tmp='\0';
dsgw_emitf("<BASE href=\"%s%s/%s\">\n", surl, sn, base);
}
- while( fgets(line, BIG_LINE, html)) {
+ while( fgets(line, sizeof(line), html)) {
dsgw_emits( line );
}
}
@@ -210,7 +210,7 @@ main(
map=fopen(man_index, "r");
if(!map)
goto ohwell;
- while(fgets(line, BIG_LINE, map)) {
+ while(fgets(line, sizeof(line), map)) {
if(line[0]==';')
continue;
else if(ldap_utf8isspace(line))
diff --git a/ldap/clients/orgchart/wrapper.c b/ldap/clients/orgchart/wrapper.c
index 9bd6f398..1ab67b23 100644
--- a/ldap/clients/orgchart/wrapper.c
+++ b/ldap/clients/orgchart/wrapper.c
@@ -62,7 +62,7 @@
#define PATH_MAX 512
#endif
-char *get_perl_file(char *);
+char *get_perl_file(char *, size_t);
/*
@@ -77,7 +77,7 @@ main( int argc, char **argv )
printf("Content-type:text/html;charset=UTF-8\n\n<html>Hi\n");
- get_perl_file(script);
+ get_perl_file(script, sizeof(script)-1);
if (strchr(script, '/') != NULL || strchr(script, '\\') != NULL) {
printf("Paths not allowed. Filenames only.\n");
@@ -94,10 +94,11 @@ main( int argc, char **argv )
}
char *
-get_perl_file(char *script) {
+get_perl_file(char *script, size_t scriptsize) {
char *qs = getenv("QUERY_STRING");
char *p1 = NULL;
char *p2 = NULL;
+ size_t maxsize;
if (qs == NULL || *qs == '\0') {
printf("No QUERY_STRING found\n");
@@ -113,6 +114,8 @@ get_perl_file(char *script) {
for (p2 = p1; *p2 != '\0' && *p2 != '&'; p2++);
- strncpy(script, p1, p2-p1);
- script[p2-p1] = '\0';
+ maxsize = (scriptsize < (p2-p1)) ? scriptsize : (p2-p1);
+
+ PL_strncpyz(script, p1, maxsize);
+ script[maxsize] = '\0';
}
diff --git a/ldap/servers/plugins/acl/acldllmain.c b/ldap/servers/plugins/acl/acldllmain.c
index e1e3d6b6..900a45d0 100644
--- a/ldap/servers/plugins/acl/acldllmain.c
+++ b/ldap/servers/plugins/acl/acldllmain.c
@@ -136,6 +136,7 @@ void LDAPDebug( int level, char* fmt, ... )
va_list ap;
va_start (ap, fmt);
_snprintf (debugBuf, sizeof(debugBuf), fmt, ap);
+ debugBuf[sizeof(debugBuf)-1] = 0;
va_end (ap);
OutputDebugString (debugBuf);
diff --git a/ldap/servers/plugins/acl/acllas.c b/ldap/servers/plugins/acl/acllas.c
index 3cf99fd6..e0ec42d7 100644
--- a/ldap/servers/plugins/acl/acllas.c
+++ b/ldap/servers/plugins/acl/acllas.c
@@ -1436,10 +1436,11 @@ dump_eval_info (char *caller, struct eval_info *info, int idx)
if ( idx < 0 )
{
sprintf ( buf, "\nuserDN=\"%s\"\nmember=", info->userDN);
- if (info->member)
+ if (info->member && *info->member)
{
len = strlen (buf);
- sprintf ( &(buf[len]), "\"%s\"", info->member );
+ /* member is a char ** */
+ sprintf ( &(buf[len]), "\"%s\"", *info->member );
}
len = strlen (buf);
sprintf ( &(buf[len]), "\nmemberinfo[%d]-[%d]:", info->c_idx, info->lu_idx );
diff --git a/ldap/servers/plugins/chainingdb/cb_instance.c b/ldap/servers/plugins/chainingdb/cb_instance.c
index 7c315b00..3ead2908 100644
--- a/ldap/servers/plugins/chainingdb/cb_instance.c
+++ b/ldap/servers/plugins/chainingdb/cb_instance.c
@@ -1436,7 +1436,7 @@ void cb_instance_config_get(void *arg, cb_instance_config_info *config, char *bu
sprintf(buf, "%o", (int) config->config_get_fn(arg));
break;
case CB_CONFIG_TYPE_LONG:
- sprintf(buf, "%d", (long) config->config_get_fn(arg));
+ sprintf(buf, "%ld", (long) config->config_get_fn(arg));
break;
case CB_CONFIG_TYPE_STRING:
/* Remember the get function for strings returns memory
diff --git a/ldap/servers/plugins/chainingdb/cb_monitor.c b/ldap/servers/plugins/chainingdb/cb_monitor.c
index 573d1407..dbc45214 100644
--- a/ldap/servers/plugins/chainingdb/cb_monitor.c
+++ b/ldap/servers/plugins/chainingdb/cb_monitor.c
@@ -76,9 +76,9 @@ cb_search_monitor_callback(Slapi_PBlock * pb, Slapi_Entry * e, Slapi_Entry * ent
char buf[CB_BUFSIZE];
struct berval val;
struct berval *vals[2];
- int deletecount,addcount,modifycount,modrdncount,searchbasecount,searchonelevelcount;
- int searchsubtreecount,abandoncount,bindcount,unbindcount,comparecount;
- int outgoingconn, outgoingbindconn;
+ unsigned long deletecount,addcount,modifycount,modrdncount,searchbasecount,searchonelevelcount;
+ unsigned long searchsubtreecount,abandoncount,bindcount,unbindcount,comparecount;
+ unsigned int outgoingconn, outgoingbindconn;
cb_backend_instance *inst = (cb_backend_instance *)arg;
/* First make sure the backend instance is configured */
@@ -178,12 +178,12 @@ cb_search_monitor_callback(Slapi_PBlock * pb, Slapi_Entry * e, Slapi_Entry * ent
val.bv_len = strlen( buf );
slapi_entry_attr_replace( e, CB_MONITOR_COMPARECOUNT, ( struct berval **)vals );
- sprintf( buf, "%d", outgoingconn );
+ sprintf( buf, "%u", outgoingconn );
val.bv_val = buf;
val.bv_len = strlen( buf );
slapi_entry_attr_replace( e, CB_MONITOR_OUTGOINGCONN, ( struct berval **)vals );
- sprintf( buf, "%d", outgoingbindconn );
+ sprintf( buf, "%u", outgoingbindconn );
val.bv_val = buf;
val.bv_len = strlen( buf );
slapi_entry_attr_replace( e, CB_MONITOR_OUTGOINGBINDCOUNT, ( struct berval **)vals );
diff --git a/ldap/servers/plugins/collation/dllmain.c b/ldap/servers/plugins/collation/dllmain.c
index d4811fa7..0bbb5a9a 100644
--- a/ldap/servers/plugins/collation/dllmain.c
+++ b/ldap/servers/plugins/collation/dllmain.c
@@ -139,6 +139,7 @@ void LDAPDebug( int level, char* fmt, ... )
va_list ap;
va_start (ap, fmt);
_snprintf (debugBuf, sizeof(debugBuf), fmt, ap);
+ debugBuf[sizeof(debugBuf)-1] = 0;
va_end (ap);
OutputDebugString (debugBuf);
diff --git a/ldap/servers/plugins/http/http_impl.c b/ldap/servers/plugins/http/http_impl.c
index ee8ff043..2dac90a9 100644
--- a/ldap/servers/plugins/http/http_impl.c
+++ b/ldap/servers/plugins/http/http_impl.c
@@ -62,6 +62,7 @@
/*** from proto-slap.h ***/
int slapd_log_error_proc( char *subsystem, char *fmt, ... );
+
char *config_get_instancedir();
/*** from ldaplog.h ***/
@@ -965,11 +966,11 @@ static PRStatus parseAtPath(const char *url, char **path)
{
PRStatus status = PR_SUCCESS;
char *dir = "%s%s";
- *path = (char *)PR_Calloc(1, (strlen(dir) + 1024));
+ *path = (char *)PR_Calloc(1, strlen(dir) + strlen(url) + 2);
/* Just write the path and check for a starting / */
if ('/' != *url) {
- PR_sscanf(*path, dir, "/", url);
+ sprintf(*path, dir, "/", url);
} else {
strcpy(*path, url);
}
diff --git a/ldap/servers/plugins/pam_passthru/pam_ptdllmain.c b/ldap/servers/plugins/pam_passthru/pam_ptdllmain.c
index efbbe03d..96f55624 100644
--- a/ldap/servers/plugins/pam_passthru/pam_ptdllmain.c
+++ b/ldap/servers/plugins/pam_passthru/pam_ptdllmain.c
@@ -138,6 +138,7 @@ void LDAPDebug( int level, char* fmt, ... )
va_list ap;
va_start (ap, fmt);
_snprintf (debugBuf, sizeof(debugBuf), fmt, ap);
+ debugBuf[sizeof(debugBuf)-1] = 0;
va_end (ap);
OutputDebugString (debugBuf);
diff --git a/ldap/servers/plugins/passthru/ptdllmain.c b/ldap/servers/plugins/passthru/ptdllmain.c
index 9d8fbeeb..fe8b45e4 100644
--- a/ldap/servers/plugins/passthru/ptdllmain.c
+++ b/ldap/servers/plugins/passthru/ptdllmain.c
@@ -139,6 +139,7 @@ void LDAPDebug( int level, char* fmt, ... )
va_list ap;
va_start (ap, fmt);
_snprintf (debugBuf, sizeof(debugBuf), fmt, ap);
+ debugBuf[sizeof(debugBuf)-1] = 0;
va_end (ap);
OutputDebugString (debugBuf);
diff --git a/ldap/servers/plugins/presence/presence.c b/ldap/servers/plugins/presence/presence.c
index c5b1371e..41ebcbee 100644
--- a/ldap/servers/plugins/presence/presence.c
+++ b/ldap/servers/plugins/presence/presence.c
@@ -61,7 +61,13 @@
/*** from proto-slap.h ***/
-int slapd_log_error_proc( char *subsystem, char *fmt, ... );
+int slapd_log_error_proc( char *subsystem, char *fmt, ... )
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 2, 3)));
+#else
+ ;
+#endif
+
/*** from ldaplog.h ***/
diff --git a/ldap/servers/plugins/replication/cl5_api.c b/ldap/servers/plugins/replication/cl5_api.c
index 0f1f38be..1cf2ae2c 100644
--- a/ldap/servers/plugins/replication/cl5_api.c
+++ b/ldap/servers/plugins/replication/cl5_api.c
@@ -51,6 +51,7 @@
#include "cl5_api.h"
#include "plhash.h"
+#include "plstr.h"
#include "db.h"
#include "cl5_clcache.h" /* To use the Changelog Cache */
@@ -2124,7 +2125,7 @@ int cl5CreateDirIfNeeded (const char *dirName)
}
/* directory does not exist - try to create */
- strncpy (buff, dirName, MAXPATHLEN);
+ PL_strncpyz (buff, dirName, sizeof(buff)-1);
t = strchr (buff, '/');
/* skip first slash */
diff --git a/ldap/servers/plugins/replication/repl.h b/ldap/servers/plugins/replication/repl.h
index c964fb2e..561c1c67 100644
--- a/ldap/servers/plugins/replication/repl.h
+++ b/ldap/servers/plugins/replication/repl.h
@@ -61,10 +61,9 @@ typedef struct schedule_item
} schedule_item;
/* XXXggood - copied from slap.h - bad */
-#if defined( XP_WIN32 )
+/* XXXrichm - copied to match definition in slap.h - 20060406 */
+#ifndef NO_TIME
#define NO_TIME (time_t)0 /* cannot be -1, NT's localtime( -1 ) returns NULL */
-#else
-#define NO_TIME (time_t)-1 /* a value that time() does not return */
#endif
/*
diff --git a/ldap/servers/plugins/replication/repl5_inc_protocol.c b/ldap/servers/plugins/replication/repl5_inc_protocol.c
index 276ab4f0..ba7c507b 100644
--- a/ldap/servers/plugins/replication/repl5_inc_protocol.c
+++ b/ldap/servers/plugins/replication/repl5_inc_protocol.c
@@ -242,6 +242,7 @@ repl5_inc_get_next_result(result_data *rd)
return conres;
}
+#if NEEDED_FOR_DEBUGGING
static void
repl5_inc_log_operation_failure(int operation_code, int ldap_error, char* ldap_error_string, const char *agreement_name)
{
@@ -253,12 +254,12 @@ repl5_inc_log_operation_failure(int operation_code, int ldap_error, char* ldap_e
ldap_error, ldap_error_string ? ldap_error_string : "NULL",
op_string ? op_string : "NULL");
}
+#endif
/* Thread that collects results from async operations sent to the consumer */
static void repl5_inc_result_threadmain(void *param)
{
result_data *rd = (result_data*) param;
- int res = 0;
ConnResult conres = 0;
Repl_Connection *conn = rd->prp->conn;
int finished = 0;
@@ -384,7 +385,6 @@ repl5_inc_rd_new(Private_Repl_Protocol *prp)
static void
repl5_inc_rd_list_destroy(repl5_inc_operation *op)
{
- repl5_inc_operation *cur = op;
while (op) {
repl5_inc_operation *next = op->next;
repl5_inc_op_free(op);
@@ -689,7 +689,7 @@ repl5_inc_run(Private_Repl_Protocol *prp)
/* just ignore it and go to sleep */
protocol_sleep(prp, PR_INTERVAL_NO_TIMEOUT);
}
- else if (e1 = event_occurred(prp, EVENT_WINDOW_CLOSED) ||
+ else if ((e1 = event_occurred(prp, EVENT_WINDOW_CLOSED)) ||
event_occurred(prp, EVENT_BACKOFF_EXPIRED))
{
/* this events - should not occur - log a warning and go to sleep */
@@ -748,7 +748,7 @@ repl5_inc_run(Private_Repl_Protocol *prp)
next_state = STATE_READY_TO_ACQUIRE;
wait_change_timer_set = 0;
}
- else if (e1 = event_occurred(prp, EVENT_WINDOW_OPENED) ||
+ else if ((e1 = event_occurred(prp, EVENT_WINDOW_OPENED)) ||
event_occurred(prp, EVENT_BACKOFF_EXPIRED))
{
/* this events - should not occur - log a warning and clear the event */
@@ -849,7 +849,7 @@ repl5_inc_run(Private_Repl_Protocol *prp)
{
/* consume and ignore */
}
- else if (e1 = event_occurred (prp, EVENT_WINDOW_OPENED) ||
+ else if ((e1 = event_occurred (prp, EVENT_WINDOW_OPENED)) ||
event_occurred (prp, EVENT_BACKOFF_EXPIRED))
{
/* This should never happen */
diff --git a/ldap/servers/plugins/replication/repl5_replica.c b/ldap/servers/plugins/replication/repl5_replica.c
index 8ab8ee48..ae2e9f86 100644
--- a/ldap/servers/plugins/replication/repl5_replica.c
+++ b/ldap/servers/plugins/replication/repl5_replica.c
@@ -1539,7 +1539,7 @@ _replica_check_validity (const Replica *r)
PR_ASSERT (r);
if (r->repl_root == NULL || r->repl_type == 0 || r->repl_rid == 0 ||
- r->repl_rid > MAX_REPLICA_ID || r->repl_csngen == NULL || r->repl_name == NULL)
+ r->repl_csngen == NULL || r->repl_name == NULL)
{
return -1;
}
diff --git a/ldap/servers/plugins/replication/repl5_tot_protocol.c b/ldap/servers/plugins/replication/repl5_tot_protocol.c
index fada1057..971fe079 100644
--- a/ldap/servers/plugins/replication/repl5_tot_protocol.c
+++ b/ldap/servers/plugins/replication/repl5_tot_protocol.c
@@ -125,7 +125,6 @@ repl5_tot_log_operation_failure(int ldap_error, char* ldap_error_string, const c
static void repl5_tot_result_threadmain(void *param)
{
callback_data *cb = (callback_data*) param;
- int res = 0;
ConnResult conres = 0;
Repl_Connection *conn = cb->prp->conn;
int finished = 0;
diff --git a/ldap/servers/plugins/replication/windows_connection.c b/ldap/servers/plugins/replication/windows_connection.c
index 4583c102..fd9f56a6 100644
--- a/ldap/servers/plugins/replication/windows_connection.c
+++ b/ldap/servers/plugins/replication/windows_connection.c
@@ -665,8 +665,6 @@ send_dirsync_search(Repl_Connection *conn)
const char* old_dn = NULL;
char* dn = NULL;
- int i=0;
- int num_comp=0;
LDAPDebug( LDAP_DEBUG_TRACE, "=> send_dirsync_search\n", 0, 0, 0 );
@@ -810,13 +808,10 @@ windows_conn_send_rename(Repl_Connection *conn, const char *dn,
Slapi_Entry * windows_conn_get_search_result(Repl_Connection *conn)
{
int rc=0;
- int matches=0;
LDAPMessage *res = NULL;
Slapi_Entry *e = NULL;
LDAPMessage *lm = NULL;
- char *a = "";
char *dn = "";
- BerElement *ber = NULL;
LDAPDebug( LDAP_DEBUG_TRACE, "=> windows_conn_get_search_result\n", 0, 0, 0 );
diff --git a/ldap/servers/plugins/replication/windows_inc_protocol.c b/ldap/servers/plugins/replication/windows_inc_protocol.c
index c3a642ef..2418f25d 100644
--- a/ldap/servers/plugins/replication/windows_inc_protocol.c
+++ b/ldap/servers/plugins/replication/windows_inc_protocol.c
@@ -386,7 +386,7 @@ windows_inc_run(Private_Repl_Protocol *prp)
/* just ignore it and go to sleep */
protocol_sleep(prp, PR_INTERVAL_NO_TIMEOUT);
}
- else if (e1 = event_occurred(prp, EVENT_WINDOW_CLOSED) ||
+ else if ((e1 = event_occurred(prp, EVENT_WINDOW_CLOSED)) ||
event_occurred(prp, EVENT_BACKOFF_EXPIRED))
{
/* this events - should not occur - log a warning and go to sleep */
@@ -458,7 +458,7 @@ windows_inc_run(Private_Repl_Protocol *prp)
next_state = STATE_READY_TO_ACQUIRE;
wait_change_timer_set = 0;
}
- else if (e1 = event_occurred(prp, EVENT_WINDOW_OPENED) ||
+ else if ((e1 = event_occurred(prp, EVENT_WINDOW_OPENED)) ||
event_occurred(prp, EVENT_BACKOFF_EXPIRED))
{
/* this events - should not occur - log a warning and clear the event */
@@ -570,7 +570,7 @@ windows_inc_run(Private_Repl_Protocol *prp)
{
/* consume and ignore */
}
- else if (e1 = event_occurred (prp, EVENT_WINDOW_OPENED) ||
+ else if ((e1 = event_occurred (prp, EVENT_WINDOW_OPENED)) ||
event_occurred (prp, EVENT_BACKOFF_EXPIRED))
{
/* This should never happen */
diff --git a/ldap/servers/plugins/replication/windows_private.c b/ldap/servers/plugins/replication/windows_private.c
index 3ffd3e87..e81e341b 100644
--- a/ldap/servers/plugins/replication/windows_private.c
+++ b/ldap/servers/plugins/replication/windows_private.c
@@ -423,7 +423,6 @@ LDAPControl* windows_private_dirsync_control(const Repl_Agmt *ra)
{
LDAPControl *control = NULL;
- LDAPControl **lc = &control ;
BerElement *ber;
Dirsync_Private *dp;
@@ -498,7 +497,7 @@ void windows_private_update_dirsync_control(const Repl_Agmt *ra,LDAPControl **co
goto choke;
}
- slapi_ch_free(&dp->dirsync_cookie);
+ slapi_ch_free_string(&dp->dirsync_cookie);
dp->dirsync_cookie = ( char* ) slapi_ch_malloc(serverCookie->bv_len + 1);
memcpy(dp->dirsync_cookie, serverCookie->bv_val, serverCookie->bv_len);
@@ -548,7 +547,7 @@ void windows_private_null_dirsync_cookie(const Repl_Agmt *ra)
PR_ASSERT (dp);
dp->dirsync_cookie_len = 0;
- slapi_ch_free(&dp->dirsync_cookie);
+ slapi_ch_free_string(&dp->dirsync_cookie);
dp->dirsync_cookie = NULL;
LDAPDebug( LDAP_DEBUG_TRACE, "<= windows_private_null_dirsync_control\n", 0, 0, 0 );
@@ -630,7 +629,6 @@ int windows_private_load_dirsync_cookie(const Repl_Agmt *ra)
Slapi_DN* sdn = NULL;
int rc = 0;
Slapi_Entry *entry = NULL;
- char* cookie = NULL;
Slapi_Attr *attr = NULL;
LDAPDebug( LDAP_DEBUG_TRACE, "=> windows_private_load_dirsync_cookie\n", 0, 0, 0 );
@@ -658,7 +656,7 @@ int windows_private_load_dirsync_cookie(const Repl_Agmt *ra)
if (vals)
{
dp->dirsync_cookie_len = (int) (vals[0])->bv_len;
- slapi_ch_free(&dp->dirsync_cookie);
+ slapi_ch_free_string(&dp->dirsync_cookie);
dp->dirsync_cookie = ( char* ) slapi_ch_malloc(dp->dirsync_cookie_len + 1);
memcpy(dp->dirsync_cookie,(vals[0]->bv_val), (vals[0])->bv_len+1);
diff --git a/ldap/servers/plugins/replication/windows_protocol_util.c b/ldap/servers/plugins/replication/windows_protocol_util.c
index a8049fa3..cc409c6d 100644
--- a/ldap/servers/plugins/replication/windows_protocol_util.c
+++ b/ldap/servers/plugins/replication/windows_protocol_util.c
@@ -64,12 +64,12 @@ static int is_subject_of_agreemeent_local(const Slapi_Entry *local_entry,const R
static int windows_create_remote_entry(Private_Repl_Protocol *prp,Slapi_Entry *original_entry, Slapi_DN *remote_sdn, Slapi_Entry **remote_entry, char** password);
static int windows_get_local_entry(const Slapi_DN* local_dn,Slapi_Entry **local_entry);
static int windows_get_local_entry_by_uniqueid(Private_Repl_Protocol *prp,const char* uniqueid,Slapi_Entry **local_entry);
-static int map_entry_dn_outbound(Slapi_Entry *e, const Slapi_DN **dn, Private_Repl_Protocol *prp, int *missing_entry, int want_guid);
+static int map_entry_dn_outbound(Slapi_Entry *e, Slapi_DN **dn, Private_Repl_Protocol *prp, int *missing_entry, int want_guid);
static char* extract_ntuserdomainid_from_entry(Slapi_Entry *e);
static int windows_get_remote_entry (Private_Repl_Protocol *prp, const Slapi_DN* remote_dn,Slapi_Entry **remote_entry);
static const char* op2string (int op);
static int is_subject_of_agreemeent_remote(Slapi_Entry *e, const Repl_Agmt *ra);
-static int map_entry_dn_inbound(Slapi_Entry *e, const Slapi_DN **dn, const Repl_Agmt *ra);
+static int map_entry_dn_inbound(Slapi_Entry *e, Slapi_DN **dn, const Repl_Agmt *ra);
static int windows_update_remote_entry(Private_Repl_Protocol *prp,Slapi_Entry *remote_entry,Slapi_Entry *local_entry);
@@ -678,12 +678,6 @@ windows_acquire_replica(Private_Repl_Protocol *prp, RUV **ruv, int check_ruv)
void
windows_release_replica(Private_Repl_Protocol *prp)
{
-
- struct berval *retdata = NULL;
- char *retoid = NULL;
- struct berval *payload = NULL;
- Slapi_DN *replarea_sdn = NULL;
-
LDAPDebug( LDAP_DEBUG_TRACE, "=> windows_release_replica\n", 0, 0, 0 );
PR_ASSERT(NULL != prp);
@@ -1248,14 +1242,12 @@ windows_create_remote_entry(Private_Repl_Protocol *prp,Slapi_Entry *original_ent
int retval = 0;
char *entry_string = NULL;
Slapi_Entry *new_entry = NULL;
- Slapi_PBlock* pb = NULL;
int rc = 0;
int is_user = 0;
int is_group = 0;
Slapi_Attr *attr = NULL;
char *username = NULL;
const char *dn_string = NULL;
- char *remote_entry_template = NULL;
char *fqusername = NULL;
const char *domain_name = windows_private_get_windows_domain(prp->agmt);
int is_nt4 = windows_private_get_isnt4(prp->agmt);
@@ -1309,7 +1301,6 @@ windows_create_remote_entry(Private_Repl_Protocol *prp,Slapi_Entry *original_ent
for (rc = slapi_entry_first_attr(original_entry, &attr); rc == 0;
rc = slapi_entry_next_attr(original_entry, attr, &attr))
{
- Slapi_Value *value = NULL;
char *type = NULL;
Slapi_ValueSet *vs = NULL;
int mapdn = 0;
@@ -1449,7 +1440,6 @@ windows_map_mods_for_replay(Private_Repl_Protocol *prp,LDAPMod **original_mods,
Slapi_Mods smods = {0};
Slapi_Mods mapped_smods = {0};
LDAPMod *mod = NULL;
- int i=0;
int is_nt4 = windows_private_get_isnt4(prp->agmt);
LDAPDebug( LDAP_DEBUG_TRACE, "=> windows_map_mods_for_replay\n", 0, 0, 0 );
@@ -1944,7 +1934,7 @@ extract_container(const Slapi_DN *entry_dn, const Slapi_DN *suffix_dn)
/* Given a non-tombstone entry, return the DN of its peer in AD (whether present or not) */
static int
-map_entry_dn_outbound(Slapi_Entry *e, const Slapi_DN **dn, Private_Repl_Protocol *prp, int *missing_entry, int guid_form)
+map_entry_dn_outbound(Slapi_Entry *e, Slapi_DN **dn, Private_Repl_Protocol *prp, int *missing_entry, int guid_form)
{
int retval = 0;
char *guid = NULL;
@@ -2048,7 +2038,7 @@ map_entry_dn_outbound(Slapi_Entry *e, const Slapi_DN **dn, Private_Repl_Protocol
/* Given a tombstone entry, return the DN of its peer in this server (if present) */
static int
-map_tombstone_dn_inbound(Slapi_Entry *e, const Slapi_DN **dn, const Repl_Agmt *ra)
+map_tombstone_dn_inbound(Slapi_Entry *e, Slapi_DN **dn, const Repl_Agmt *ra)
{
int retval = 0;
Slapi_DN *new_dn = NULL;
@@ -2106,7 +2096,7 @@ map_tombstone_dn_inbound(Slapi_Entry *e, const Slapi_DN **dn, const Repl_Agmt *r
/* Given a non-tombstone entry, return the DN of its peer in this server (whether present or not) */
static int
-map_entry_dn_inbound(Slapi_Entry *e, const Slapi_DN **dn, const Repl_Agmt *ra)
+map_entry_dn_inbound(Slapi_Entry *e, Slapi_DN **dn, const Repl_Agmt *ra)
{
int retval = 0;
Slapi_DN *new_dn = NULL;
@@ -2366,7 +2356,6 @@ windows_create_local_entry(Private_Repl_Protocol *prp,Slapi_Entry *remote_entry,
for (rc = slapi_entry_first_attr(remote_entry, &attr); rc == 0;
rc = slapi_entry_next_attr(remote_entry, attr, &attr))
{
- Slapi_Value *value = NULL;
char *type = NULL;
Slapi_ValueSet *vs = NULL;
int mapdn = 0;
@@ -2517,7 +2506,6 @@ windows_generate_update_mods(Private_Repl_Protocol *prp,Slapi_Entry *remote_entr
rc = slapi_entry_next_attr(remote_entry, attr, &attr))
{
int is_present_local = 0;
- Slapi_Value *value = NULL;
char *type = NULL;
Slapi_ValueSet *vs = NULL;
char *local_type = NULL;
@@ -2723,7 +2711,6 @@ windows_update_local_entry(Private_Repl_Protocol *prp,Slapi_Entry *remote_entry,
{
Slapi_Mods smods = {0};
int retval = 0;
- int rc = 0;
Slapi_PBlock *pb = NULL;
int do_modify = 0;
diff --git a/ldap/servers/plugins/syntaxes/dllmain.c b/ldap/servers/plugins/syntaxes/dllmain.c
index 19538144..cde0a541 100644
--- a/ldap/servers/plugins/syntaxes/dllmain.c
+++ b/ldap/servers/plugins/syntaxes/dllmain.c
@@ -141,6 +141,7 @@ void LDAPDebug( int level, char* fmt, ... )
va_list ap;
va_start (ap, fmt);
_snprintf (debugBuf, sizeof(debugBuf), fmt, ap);
+ debugBuf[sizeof(debugBuf)-1] = 0;
va_end (ap);
OutputDebugString (debugBuf);
diff --git a/ldap/servers/slapd/abandon.c b/ldap/servers/slapd/abandon.c
index a87a5d07..278455c5 100644
--- a/ldap/servers/slapd/abandon.c
+++ b/ldap/servers/slapd/abandon.c
@@ -158,7 +158,7 @@ do_abandon( Slapi_PBlock *pb )
pb->pb_conn->c_connid, pb->pb_op->o_opid, id );
} else {
slapi_log_access( LDAP_DEBUG_STATS, "conn=%d op=%d ABANDON"
- " targetop=%d msgid=%d nentries=%d etime=%d\n",
+ " targetop=%d msgid=%d nentries=%d etime=%ld\n",
pb->pb_conn->c_connid, pb->pb_op->o_opid, o->o_opid, id,
o->o_results.r.r_search.nentries, current_time() - o->o_time );
diff --git a/ldap/servers/slapd/auth.c b/ldap/servers/slapd/auth.c
index ccd2bf05..56fa517e 100644
--- a/ldap/servers/slapd/auth.c
+++ b/ldap/servers/slapd/auth.c
@@ -445,7 +445,7 @@ handle_handshake_done (PRFileDesc *prfd, void* clientData)
!= SECSuccess) {
PRErrorCode errorCode = PR_GetError();
slapi_log_access (LDAP_DEBUG_STATS,
- "conn=%d SSL failed to obtain cipher info; ",
+ "conn=%d SSL failed to obtain cipher info; "
SLAPI_COMPONENT_NAME_NSPR " error %i (%s)\n",
conn->c_connid, errorCode, slapd_pr_strerror(errorCode));
return;
diff --git a/ldap/servers/slapd/back-ldbm/archive.c b/ldap/servers/slapd/back-ldbm/archive.c
index 8050e393..cb317b52 100644
--- a/ldap/servers/slapd/back-ldbm/archive.c
+++ b/ldap/servers/slapd/back-ldbm/archive.c
@@ -207,7 +207,7 @@ int ldbm_back_archive2ldbm( Slapi_PBlock *pb )
c = *p;
*p = '\0';
}
- bakup_dir = slapi_ch_smprintf("%s%ctmp_%010d", directory, c, time(0));
+ bakup_dir = slapi_ch_smprintf("%s%ctmp_%010ld", directory, c, time(0));
LDAPDebug( LDAP_DEBUG_ANY,
"archive2db: backup dir: %s\n", bakup_dir, 0, 0);
*p = c;
@@ -315,10 +315,10 @@ int ldbm_back_ldbm2archive( Slapi_PBlock *pb )
if (task) {
slapi_task_log_notice(task,
"Failed to rename \"%s\" to \"%s\".",
- directory, dir_bak, 0);
+ directory, dir_bak);
slapi_task_log_notice(task,
SLAPI_COMPONENT_NAME_NSPR " error %d (%s)",
- prerr, slapd_pr_strerror(prerr), 0);
+ prerr, slapd_pr_strerror(prerr));
}
return_value = -1;
goto out;
diff --git a/ldap/servers/slapd/back-ldbm/dbhelp.c b/ldap/servers/slapd/back-ldbm/dbhelp.c
index 5ad59e84..29f2d284 100644
--- a/ldap/servers/slapd/back-ldbm/dbhelp.c
+++ b/ldap/servers/slapd/back-ldbm/dbhelp.c
@@ -51,7 +51,7 @@ static int dblayer_copy_file_keybykey(DB_ENV *env, char *source_file_name, char
DB *source_file = NULL;
DB *destination_file = NULL;
DBC *source_cursor = NULL;
- int dbtype = 0;
+ DBTYPE dbtype = 0;
int dbflags = 0;
int dbpagesize = 0;
int cursor_flag = 0;
diff --git a/ldap/servers/slapd/back-ldbm/dllmain.c b/ldap/servers/slapd/back-ldbm/dllmain.c
index 187f78b8..47d3ce56 100644
--- a/ldap/servers/slapd/back-ldbm/dllmain.c
+++ b/ldap/servers/slapd/back-ldbm/dllmain.c
@@ -136,6 +136,7 @@ void LDAPDebug( int level, char* fmt, ... )
va_list ap;
va_start (ap, fmt);
_snprintf (debugBuf, sizeof(debugBuf), fmt, ap);
+ debugBuf[sizeof(debugBuf)-1] = 0;
va_end (ap);
OutputDebugString (debugBuf);
diff --git a/ldap/servers/slapd/back-ldbm/import-merge.c b/ldap/servers/slapd/back-ldbm/import-merge.c
index e5f817e7..bed6a9b6 100644
--- a/ldap/servers/slapd/back-ldbm/import-merge.c
+++ b/ldap/servers/slapd/back-ldbm/import-merge.c
@@ -654,8 +654,7 @@ int import_mega_merge(ImportJob *job)
int passes = job->current_pass;
if (1 == job->number_indexers) {
- import_log_notice(job, "Beginning %d-way merge of one file...", passes,
- job->number_indexers);
+ import_log_notice(job, "Beginning %d-way merge of one file...", passes);
} else {
import_log_notice(job, "Beginning %d-way merge of up to %lu files...",
passes, job->number_indexers);
diff --git a/ldap/servers/slapd/back-ldbm/import.h b/ldap/servers/slapd/back-ldbm/import.h
index f0398deb..72dbd495 100644
--- a/ldap/servers/slapd/back-ldbm/import.h
+++ b/ldap/servers/slapd/back-ldbm/import.h
@@ -203,7 +203,13 @@ struct _import_worker_info {
/* import.c */
FifoItem *import_fifo_fetch(ImportJob *job, ID id, int worker, int shift);
void import_free_job(ImportJob *job);
-void import_log_notice(ImportJob *job, char *format, ...);
+void import_log_notice(ImportJob *job, char *format, ...)
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 2, 3)));
+#else
+ ;
+#endif
+
void import_abort_all(ImportJob *job, int wait_for_them);
int import_entry_belongs_here(Slapi_Entry *e, backend *be);
int import_make_merge_filenames(char *directory, char *indexname, int pass,
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c b/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
index fa94025b..626df177 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
@@ -199,7 +199,7 @@ attrcrypt_keymgmt_store_key(ldbm_instance *li, attrcrypt_cipher_state *acs, SECK
key_as_berval.bv_len = wrapped_symmetric_key.len;
key_value = slapi_value_new_berval(&key_as_berval);
/* key_value is now a copy of key_as_berval - free wrapped_symmetric_key */
- slapi_ch_free(&wrapped_symmetric_key.data);
+ slapi_ch_free_string((char **)&wrapped_symmetric_key.data);
slapi_entry_add_value(e, KEY_ATTRIBUTE_NAME, key_value);
slapi_value_free(&key_value);
/* Store the entry */
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_config.c b/ldap/servers/slapd/back-ldbm/ldbm_config.c
index 7f27b47a..169d8e29 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_config.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_config.c
@@ -1371,6 +1371,7 @@ int ldbm_config_load_dse_info(struct ldbminfo *li)
void ldbm_config_get(void *arg, config_info *config, char *buf)
{
char *tmp_string;
+ size_t val = 0;
if (config == NULL) {
buf[0] = '\0';
@@ -1387,7 +1388,8 @@ void ldbm_config_get(void *arg, config_info *config, char *buf)
sprintf(buf, "%ld", (long) config->config_get_fn(arg));
break;
case CONFIG_TYPE_SIZE_T:
- sprintf(buf, "%lu", (size_t) config->config_get_fn(arg));
+ val = (size_t) config->config_get_fn(arg);
+ sprintf(buf, "%lu", val);
break;
case CONFIG_TYPE_STRING:
/* Remember the get function for strings returns memory
diff --git a/ldap/servers/slapd/back-ldbm/ldif2ldbm.c b/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
index 13c8ad89..07aa3e58 100644
--- a/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
+++ b/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
@@ -1307,7 +1307,7 @@ ldbm_back_ldbm2index(Slapi_PBlock *pb)
if (NULL == inst) {
if (task) {
slapi_task_log_notice(task, "Unknown ldbm instance %s",
- instance_name, 0, 0);
+ instance_name);
}
LDAPDebug(LDAP_DEBUG_ANY, "Unknown ldbm instance %s\n",
instance_name, 0, 0);
@@ -2081,7 +2081,7 @@ int ldbm_back_upgradedb(Slapi_PBlock *pb)
{
time_t tm = time(0); /* long */
- char *tmpname = slapi_ch_smprintf("%s/%d", dest_dir, tm);
+ char *tmpname = slapi_ch_smprintf("%s/%ld", dest_dir, tm);
dest_dir = tmpname;
}
else /* not a directory */
diff --git a/ldap/servers/slapd/back-ldif/dllmain.c b/ldap/servers/slapd/back-ldif/dllmain.c
index 9dc45e74..29942f99 100644
--- a/ldap/servers/slapd/back-ldif/dllmain.c
+++ b/ldap/servers/slapd/back-ldif/dllmain.c
@@ -140,6 +140,7 @@ void LDAPDebug( int level, char* fmt, ... )
va_list ap;
va_start (ap, fmt);
_snprintf (debugBuf, sizeof(debugBuf), fmt, ap);
+ debugBuf[sizeof(debugBuf)-1] = 0;
va_end (ap);
OutputDebugString (debugBuf);
diff --git a/ldap/servers/slapd/csn.c b/ldap/servers/slapd/csn.c
index ecabfc4b..7c517048 100644
--- a/ldap/servers/slapd/csn.c
+++ b/ldap/servers/slapd/csn.c
@@ -372,11 +372,12 @@ csn_max(const CSN *csn1,const CSN *csn2)
int csn_increment_subsequence (CSN *csn)
{
+ PRUint16 maxsubseq = (PRUint16)0xFFFFFFFF;
if (csn == NULL)
{
return -1;
}
- else if (csn->subseqnum == 0xFFFFFFFF)
+ else if (csn->subseqnum == maxsubseq)
{
slapi_log_error(SLAPI_LOG_FATAL, NULL,
"csn_increment_subsequence: subsequence overflow\n");
diff --git a/ldap/servers/slapd/csngen.c b/ldap/servers/slapd/csngen.c
index dc45da22..9716d3b2 100644
--- a/ldap/servers/slapd/csngen.c
+++ b/ldap/servers/slapd/csngen.c
@@ -338,8 +338,8 @@ int csngen_adjust_time (CSNGen *gen, const CSN* csn)
else /* remote_offset > CSN_MAX_TIME_ADJUST */
{
slapi_log_error (SLAPI_LOG_FATAL, NULL, "csngen_adjust_time: "
- "adjustment limit exceeded; value - %d, limit - %d\n",
- remote_offset, CSN_MAX_TIME_ADJUST);
+ "adjustment limit exceeded; value - %ld, limit - %ld\n",
+ remote_offset, (long)CSN_MAX_TIME_ADJUST);
PR_RWLock_Unlock (gen->lock);
return CSN_LIMIT_EXCEEDED;
}
@@ -427,9 +427,9 @@ void csngen_dump_state (const CSNGen *gen)
PR_RWLock_Rlock (gen->lock);
slapi_log_error(SLAPI_LOG_FATAL, NULL, "CSN generator's state:\n");
slapi_log_error(SLAPI_LOG_FATAL, NULL, "\treplica id: %d\n", gen->state.rid);
- slapi_log_error(SLAPI_LOG_FATAL, NULL, "\tsampled time: %d\n", gen->state.sampled_time);
- slapi_log_error(SLAPI_LOG_FATAL, NULL, "\tlocal offset: %d\n", gen->state.local_offset);
- slapi_log_error(SLAPI_LOG_FATAL, NULL, "\tremote offset: %d\n", gen->state.remote_offset);
+ slapi_log_error(SLAPI_LOG_FATAL, NULL, "\tsampled time: %ld\n", gen->state.sampled_time);
+ slapi_log_error(SLAPI_LOG_FATAL, NULL, "\tlocal offset: %ld\n", gen->state.local_offset);
+ slapi_log_error(SLAPI_LOG_FATAL, NULL, "\tremote offset: %ld\n", gen->state.remote_offset);
slapi_log_error(SLAPI_LOG_FATAL, NULL, "\tsequence number: %d\n", gen->state.seq_num);
PR_RWLock_Unlock (gen->lock);
}
diff --git a/ldap/servers/slapd/daemon.c b/ldap/servers/slapd/daemon.c
index 1f3de4f9..1fe82b77 100644
--- a/ldap/servers/slapd/daemon.c
+++ b/ldap/servers/slapd/daemon.c
@@ -2588,7 +2588,7 @@ int configure_pr_socket( PRFileDesc **pr_socket, int secure )
if ( NULL == nspr_layer_fd ) {
slapi_log_error( SLAPI_LOG_FATAL, "configure_pr_socket",
"Unable to move socket file descriptor %d above %d:"
- " PR_GetIdentitiesLayer( 0x%x, PR_NSPR_IO_LAYER )"
+ " PR_GetIdentitiesLayer( %p, PR_NSPR_IO_LAYER )"
" failed\n", ns, reservedescriptors, *pr_socket );
close( newfd ); /* can't fix things up in NSPR -- close copy */
} else {
diff --git a/ldap/servers/slapd/eventq.c b/ldap/servers/slapd/eventq.c
index ca7ab67b..8909e074 100644
--- a/ldap/servers/slapd/eventq.c
+++ b/ldap/servers/slapd/eventq.c
@@ -143,7 +143,7 @@ slapi_eq_once(slapi_eq_fn_t fn, void *arg, time_t when)
/* scheduling. Too bad */
slapi_log_error(SLAPI_LOG_HOUSE, NULL,
- "added one-time event id 0x%x at time %u\n",
+ "added one-time event id %p at time %ld\n",
id, when);
return(id);
}
@@ -175,7 +175,7 @@ slapi_eq_repeat(slapi_eq_fn_t fn, void *arg, time_t when, unsigned long interval
tmp = eq_new(fn, arg, when, interval);
eq_enqueue(tmp);
slapi_log_error(SLAPI_LOG_HOUSE, NULL,
- "added repeating event id 0x%x at time %u, interval %u\n",
+ "added repeating event id %p at time %ld, interval %lu\n",
tmp->ec_id, when, interval);
return(tmp->ec_id);
}
@@ -212,7 +212,7 @@ slapi_eq_cancel(Slapi_Eq_Context ctx)
PR_Unlock(eq->eq_lock);
}
slapi_log_error(SLAPI_LOG_HOUSE, NULL,
- "cancellation of event id 0x%x requested: %s\n",
+ "cancellation of event id %p requested: %s\n",
ctx, found ? "cancellation succeeded" : "event not found");
return found;
}
@@ -306,7 +306,7 @@ eq_call_all()
/* Call the scheduled function */
p->ec_fn(p->ec_when, p->ec_arg);
slapi_log_error(SLAPI_LOG_HOUSE, NULL,
- "Event id 0x%x called at %u (scheduled for %u)\n",
+ "Event id %p called at %ld (scheduled for %ld)\n",
p->ec_id, current_time(), p->ec_when);
if (0UL != p->ec_interval) {
/* This is a repeating event. Requeue it. */
diff --git a/ldap/servers/slapd/filter.c b/ldap/servers/slapd/filter.c
index eb2a4056..605333c8 100644
--- a/ldap/servers/slapd/filter.c
+++ b/ldap/servers/slapd/filter.c
@@ -100,14 +100,14 @@ get_filter( Connection *conn, BerElement *ber, int scope,
logbuf = slapi_ch_malloc(logbufsize);
*logbuf = '\0';
slapi_log_error( SLAPI_LOG_FATAL, "get_filter", "before optimize: %s\n",
- slapi_filter_to_string(*filt, logbuf, logbufsize), 0, 0 );
+ slapi_filter_to_string(*filt, logbuf, logbufsize));
}
filter_optimize(*filt);
if (NULL != logbuf) {
slapi_log_error( SLAPI_LOG_FATAL, "get_filter", " after optimize: %s\n",
- slapi_filter_to_string(*filt, logbuf, logbufsize), 0, 0 );
+ slapi_filter_to_string(*filt, logbuf, logbufsize));
slapi_ch_free_string( &logbuf );
}
diff --git a/ldap/servers/slapd/log.c b/ldap/servers/slapd/log.c
index 022a126c..664c6d83 100644
--- a/ldap/servers/slapd/log.c
+++ b/ldap/servers/slapd/log.c
@@ -2269,7 +2269,7 @@ log_rotate:
"LOGINFO:End of Log because size exceeded(Max:%d bytes) (Is:%d bytes)\n", maxlogsize, f_size, 0);
} else if ( type == LOG_EXPIRED) {
LDAPDebug(LDAP_DEBUG_TRACE,
- "LOGINFO:End of Log because time exceeded(Max:%d secs) (Is:%d secs)\n",
+ "LOGINFO:End of Log because time exceeded(Max:%d secs) (Is:%ld secs)\n",
rotationtime_secs, curr_time - log_createtime,0);
}
}
diff --git a/ldap/servers/slapd/proto-slap.h b/ldap/servers/slapd/proto-slap.h
index 30f88b5c..e150a003 100644
--- a/ldap/servers/slapd/proto-slap.h
+++ b/ldap/servers/slapd/proto-slap.h
@@ -557,7 +557,13 @@ int lock_fclose( FILE *fp, FILE *lfp );
* log.c
*/
int slapd_log_error_proc( char *subsystem, char *fmt, ... );
-int slapi_log_access( int level, char *fmt, ... );
+
+int slapi_log_access( int level, char *fmt, ... )
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 2, 3)));
+#else
+ ;
+#endif
int slapd_log_audit_proc(char *buffer, int buf_len);
void log_access_flush();
diff --git a/ldap/servers/slapd/resourcelimit.c b/ldap/servers/slapd/resourcelimit.c
index a73b0211..d4cce9c2 100644
--- a/ldap/servers/slapd/resourcelimit.c
+++ b/ldap/servers/slapd/resourcelimit.c
@@ -474,7 +474,7 @@ reslimit_update_from_entry( Slapi_Connection *conn, Slapi_Entry *e )
if ( slapi_valueset_next_value( vs, index, &v ) != -1 ) {
char ebuf[ BUFSIZ ];
slapi_log_error( SLAPI_LOG_FATAL, SLAPI_RESLIMIT_MODULE,
- "%s: ignoring multiple values for %s in entry \n",
+ "%s: ignoring multiple values for %s in entry %s\n",
fnname, reslimit_map[ i ].rlmap_at,
escape_string( slapi_entry_get_dn_const( e ),
ebuf ));
diff --git a/ldap/servers/slapd/result.c b/ldap/servers/slapd/result.c
index dc26e986..dd9bf3dd 100644
--- a/ldap/servers/slapd/result.c
+++ b/ldap/servers/slapd/result.c
@@ -1696,7 +1696,7 @@ log_result( Slapi_PBlock *pb, Operation *op, int err, unsigned long tag,
{
slapi_log_access( LDAP_DEBUG_STATS,
"conn=%d op=%d RESULT err=%d"
- " tag=%d nentries=%d etime=%s%s%s"
+ " tag=%lu nentries=%d etime=%s%s%s"
", SASL bind in progress\n",
op->o_connid,
op->o_opid,
@@ -1708,7 +1708,7 @@ log_result( Slapi_PBlock *pb, Operation *op, int err, unsigned long tag,
{
slapi_log_access( LDAP_DEBUG_ARGS,
"conn=%s op=%d RESULT err=%d"
- " tag=%d nentries=%d etime=%s%s%s"
+ " tag=%lu nentries=%d etime=%s%s%s"
", SASL bind in progress\n",
LOG_INTERNAL_OP_CON_ID,
LOG_INTERNAL_OP_OP_ID,
@@ -1728,7 +1728,7 @@ log_result( Slapi_PBlock *pb, Operation *op, int err, unsigned long tag,
{
slapi_log_access( LDAP_DEBUG_STATS,
"conn=%d op=%d RESULT err=%d"
- " tag=%d nentries=%d etime=%s%s%s"
+ " tag=%lu nentries=%d etime=%s%s%s"
" dn=\"%s\"\n",
op->o_connid,
op->o_opid,
@@ -1740,7 +1740,7 @@ log_result( Slapi_PBlock *pb, Operation *op, int err, unsigned long tag,
{
slapi_log_access( LDAP_DEBUG_ARGS,
"conn=%s op=%d RESULT err=%d"
- " tag=%d nentries=%d etime=%s%s%s"
+ " tag=%lu nentries=%d etime=%s%s%s"
" dn=\"%s\"\n",
LOG_INTERNAL_OP_CON_ID,
LOG_INTERNAL_OP_OP_ID,
@@ -1754,7 +1754,7 @@ log_result( Slapi_PBlock *pb, Operation *op, int err, unsigned long tag,
{
slapi_log_access( LDAP_DEBUG_STATS,
"conn=%d op=%d RESULT err=%d"
- " tag=%d nentries=%d etime=%s%s%s\n",
+ " tag=%lu nentries=%d etime=%s%s%s\n",
op->o_connid,
op->o_opid,
err, tag, nentries,
@@ -1765,7 +1765,7 @@ log_result( Slapi_PBlock *pb, Operation *op, int err, unsigned long tag,
{
slapi_log_access( LDAP_DEBUG_ARGS,
"conn=%s op=%d RESULT err=%d"
- " tag=%d nentries=%d etime=%s%s%s\n",
+ " tag=%lu nentries=%d etime=%s%s%s\n",
LOG_INTERNAL_OP_CON_ID,
LOG_INTERNAL_OP_OP_ID,
err, tag, nentries,
diff --git a/ldap/servers/slapd/schema.c b/ldap/servers/slapd/schema.c
index 6ce43a52..e3ca1685 100644
--- a/ldap/servers/slapd/schema.c
+++ b/ldap/servers/slapd/schema.c
@@ -151,7 +151,13 @@ static int schema_strcmp_array( char **sa1, char **sa2,
const char *ignorestr );
static PRBool schema_type_is_interesting( const char *type );
static void schema_create_errormsg( char *errorbuf, size_t errorbufsize,
- const char *prefix, const char *name, const char *fmt, ... );
+ const char *prefix, const char *name, const char *fmt, ... )
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 5, 6)));
+#else
+ ;
+#endif
+
/* Some utility functions for dealing with a dynamic buffer */
@@ -4066,7 +4072,7 @@ init_schema_dse(const char *configdir)
{
slapi_log_error(SLAPI_LOG_FATAL, "schema", "Could not add"
" attribute type \"objectClass\" to the schema: %s\n",
- errorbuf, 0, 0);
+ errorbuf);
}
rc = dse_read_file(pschemadse, &pb);
diff --git a/ldap/servers/slapd/slapi-plugin.h b/ldap/servers/slapd/slapi-plugin.h
index 79041106..15ef187a 100644
--- a/ldap/servers/slapd/slapi-plugin.h
+++ b/ldap/servers/slapd/slapi-plugin.h
@@ -850,7 +850,12 @@ void slapi_ch_free_string( char **s );
struct berval* slapi_ch_bvdup(const struct berval*);
struct berval** slapi_ch_bvecdup(struct berval**);
void slapi_ch_bvfree(struct berval** v);
-char * slapi_ch_smprintf(const char *fmt, ...);
+char * slapi_ch_smprintf(const char *fmt, ...)
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 1, 2)));
+#else
+ ;
+#endif
/*
* syntax plugin routines
diff --git a/ldap/servers/slapd/slapi-private.h b/ldap/servers/slapd/slapi-private.h
index 9c9ce5c3..f666c260 100644
--- a/ldap/servers/slapd/slapi-private.h
+++ b/ldap/servers/slapd/slapi-private.h
@@ -1211,8 +1211,19 @@ struct _slapi_task {
int slapi_task_register_handler(const char *name, dseCallbackFn func);
void slapi_task_status_changed(Slapi_Task *task);
-void slapi_task_log_status(Slapi_Task *task, char *format, ...);
-void slapi_task_log_notice(Slapi_Task *task, char *format, ...);
+void slapi_task_log_status(Slapi_Task *task, char *format, ...)
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 2, 3)));
+#else
+ ;
+#endif
+
+void slapi_task_log_notice(Slapi_Task *task, char *format, ...)
+#ifdef __GNUC__
+ __attribute__ ((format (printf, 2, 3)));
+#else
+ ;
+#endif
/* End of interface to support online tasks **********************************/
diff --git a/ldap/servers/slapd/tools/ldclt/ldclt.c b/ldap/servers/slapd/tools/ldclt/ldclt.c
index 95b0982f..f4114c7c 100644
--- a/ldap/servers/slapd/tools/ldclt/ldclt.c
+++ b/ldap/servers/slapd/tools/ldclt/ldclt.c
@@ -3060,6 +3060,8 @@ main (
ldcltExit (EXIT_OTHER); /*JLS 25-08-00*/
ldcltExit (mctx.exitStatus); /*JLS 25-08-00*/
+
+ return mctx.exitStatus;
}
diff --git a/ldap/servers/slapd/tools/ldclt/repcheck.c b/ldap/servers/slapd/tools/ldclt/repcheck.c
index 6967e708..8851f7fe 100644
--- a/ldap/servers/slapd/tools/ldclt/repcheck.c
+++ b/ldap/servers/slapd/tools/ldclt/repcheck.c
@@ -111,6 +111,7 @@ main(int argc, char**argv)
char **tmp;
struct hostent *serveraddr;
struct sockaddr_in srvsaddr;
+ char *p;
while((i=getopt(argc,argv,"p:"))!=EOF){
switch(i){
@@ -125,7 +126,10 @@ main(int argc, char**argv)
maxop=npend=0;
pendops=(Optype*)malloc(sizeof(Optype)*20);
sigset(SIGPIPE,SIG_IGN);
- while(gets(logline)){
+ while(fgets(logline, sizeof(logline), stdin)){
+ if (p = strchr(logline, '\n')) {
+ *p = 0;
+ }
if(!connected){
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){
perror(argv[0]);
diff --git a/ldap/servers/slapd/tools/ldclt/repslave.c b/ldap/servers/slapd/tools/ldclt/repslave.c
index 952d91a3..3e892f66 100644
--- a/ldap/servers/slapd/tools/ldclt/repslave.c
+++ b/ldap/servers/slapd/tools/ldclt/repslave.c
@@ -314,8 +314,11 @@ main(int argc, char**argv)
* Ignore SIGPIPE during write()
*/
sigset(SIGPIPE,SIG_IGN);
- while(gets(logline))
+ while(fgets(logline, sizeof(logline), stdin))
{
+ if (p = strchr(logline, '\n')) {
+ *p = 0;
+ }
if(log)
puts(logline);
for(tmp=ldap_ops,i=0;tmp[i];i++)
diff --git a/ldap/servers/slapd/tools/migratecred.c b/ldap/servers/slapd/tools/migratecred.c
index d898889a..b8543b0f 100644
--- a/ldap/servers/slapd/tools/migratecred.c
+++ b/ldap/servers/slapd/tools/migratecred.c
@@ -172,7 +172,8 @@ main( int argc, char **argv)
#endif
#endif
- sprintf(libpath, "%s/../lib/des-plugin%s", newpath, shared_lib);
+ snprintf(libpath, sizeof(libpath), "%s/../lib/des-plugin%s", newpath, shared_lib);
+ libpath[sizeof(libpath)-1] = 0;
fct = (migrate_fn_type)sym_load(libpath, "migrateCredentials",
"DES Plugin", 1 /* report errors */ );
diff --git a/ldap/servers/slapd/tools/pwenc.c b/ldap/servers/slapd/tools/pwenc.c
index 350f7111..c87e0f64 100644
--- a/ldap/servers/slapd/tools/pwenc.c
+++ b/ldap/servers/slapd/tools/pwenc.c
@@ -129,7 +129,7 @@ main( argc, argv )
struct pw_scheme *pwsp, *cmppwsp;
extern int optind;
char *cpwd = NULL; /* candidate password for comparison */
- char errorbuf[BUFSIZ];
+ char errorbuf[SLAPI_DSE_RETURNTEXT_SIZE];
slapdFrontendConfig_t *slapdFrontendConfig = NULL;
char *opts = "Hs:c:D:";