|
|
7c7f29 |
From 3fbe8ab77452998fd646bf26ee8162aab0ae8659 Mon Sep 17 00:00:00 2001
|
|
|
7c7f29 |
From: Noriko Hosoi <nhosoi@redhat.com>
|
|
|
7c7f29 |
Date: Wed, 13 Jul 2016 18:59:01 -0700
|
|
|
7c7f29 |
Subject: [PATCH 09/15] Ticket #48919 - Compiler warnings while building
|
|
|
7c7f29 |
389-ds-base on RHEL7
|
|
|
7c7f29 |
|
|
|
7c7f29 |
Description: Cleaned up warnings from gcc and clang.
|
|
|
7c7f29 |
|
|
|
7c7f29 |
https://fedorahosted.org/389/ticket/48919
|
|
|
7c7f29 |
|
|
|
7c7f29 |
Reviewed by wibrown@redhat.com (Thank you, William!!)
|
|
|
7c7f29 |
|
|
|
7c7f29 |
(cherry picked from commit 18c6029f64c48b330a101cbadceb8293d39bf5e2)
|
|
|
7c7f29 |
---
|
|
|
7c7f29 |
ldap/servers/plugins/acl/acllas.c | 1 -
|
|
|
7c7f29 |
ldap/servers/slapd/agtmmap.c | 10 +++++++++-
|
|
|
7c7f29 |
ldap/servers/slapd/back-ldbm/idl_new.c | 4 ++--
|
|
|
7c7f29 |
.../servers/slapd/back-ldbm/ldbm_instance_config.c | 5 +++++
|
|
|
7c7f29 |
ldap/servers/slapd/back-ldbm/ldif2ldbm.c | 15 ++++++++++-----
|
|
|
7c7f29 |
ldap/servers/slapd/detach.c | 11 +++++++----
|
|
|
7c7f29 |
ldap/servers/slapd/localhost.c | 10 +++++++---
|
|
|
7c7f29 |
ldap/servers/slapd/protect_db.c | 22 +++++++++++++++-------
|
|
|
7c7f29 |
ldap/servers/slapd/protect_db.h | 3 +++
|
|
|
7c7f29 |
ldap/servers/slapd/saslbind.c | 3 +++
|
|
|
7c7f29 |
ldap/servers/slapd/tools/ldclt/ldapfct.c | 5 ++++-
|
|
|
7c7f29 |
ldap/servers/slapd/tools/ldif.c | 5 ++++-
|
|
|
7c7f29 |
ldap/servers/slapd/tools/mmldif.c | 20 ++++++++++++--------
|
|
|
7c7f29 |
ldap/servers/slapd/util.c | 9 ++++++---
|
|
|
7c7f29 |
ldap/servers/snmp/main.c | 15 ++++++++++++---
|
|
|
7c7f29 |
lib/base/file.cpp | 1 -
|
|
|
7c7f29 |
lib/base/fsmutex.cpp | 10 +++++++---
|
|
|
7c7f29 |
17 files changed, 106 insertions(+), 43 deletions(-)
|
|
|
7c7f29 |
|
|
|
7c7f29 |
diff --git a/ldap/servers/plugins/acl/acllas.c b/ldap/servers/plugins/acl/acllas.c
|
|
|
7c7f29 |
index ff9b450..47ac0b8 100644
|
|
|
7c7f29 |
--- a/ldap/servers/plugins/acl/acllas.c
|
|
|
7c7f29 |
+++ b/ldap/servers/plugins/acl/acllas.c
|
|
|
7c7f29 |
@@ -190,7 +190,6 @@ extern int ldapu_member_certificate_match (void* cert, const char* desc);
|
|
|
7c7f29 |
/****************************************************************************/
|
|
|
7c7f29 |
/* Defines, Constants, ande Declarations */
|
|
|
7c7f29 |
/****************************************************************************/
|
|
|
7c7f29 |
-static char* const type_objectClass = "objectclass";
|
|
|
7c7f29 |
static char* const filter_groups = "(|(objectclass=groupOfNames) (objectclass=groupOfUniqueNames)(objectclass=groupOfCertificates)(objectclass=groupOfURLs))";
|
|
|
7c7f29 |
static char* const type_member = "member";
|
|
|
7c7f29 |
static char* const type_uniquemember = "uniquemember";
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/agtmmap.c b/ldap/servers/slapd/agtmmap.c
|
|
|
7c7f29 |
index 6f72d57..629bc1b 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/agtmmap.c
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/agtmmap.c
|
|
|
7c7f29 |
@@ -160,7 +160,15 @@ agt_mopen_stats (char * statsfile, int mode, int *hdl)
|
|
|
7c7f29 |
{
|
|
|
7c7f29 |
/* Without this we will get segv when we try to read/write later */
|
|
|
7c7f29 |
buf = calloc (1, sz);
|
|
|
7c7f29 |
- (void)write (fd, buf, sz);
|
|
|
7c7f29 |
+ if (write(fd, buf, sz) < 0) {
|
|
|
7c7f29 |
+ err = errno;
|
|
|
7c7f29 |
+#if (0)
|
|
|
7c7f29 |
+ fprintf (stderr, "write failed errno=%d from %s(line: %d)\n", err, __FILE__, __LINE__);
|
|
|
7c7f29 |
+#endif
|
|
|
7c7f29 |
+ rc = err;
|
|
|
7c7f29 |
+ free (buf);
|
|
|
7c7f29 |
+ goto bail;
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
free (buf);
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/back-ldbm/idl_new.c b/ldap/servers/slapd/back-ldbm/idl_new.c
|
|
|
7c7f29 |
index 63df49f..a8d76d8 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/back-ldbm/idl_new.c
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/back-ldbm/idl_new.c
|
|
|
7c7f29 |
@@ -403,8 +403,8 @@ idl_new_range_fetch(
|
|
|
7c7f29 |
time_t curtime;
|
|
|
7c7f29 |
void *saved_key = NULL;
|
|
|
7c7f29 |
int coreop = operator & SLAPI_OP_RANGE;
|
|
|
7c7f29 |
- ID key;
|
|
|
7c7f29 |
- ID suffix;
|
|
|
7c7f29 |
+ ID key = 0xff; /* random- to suppress compiler warning */
|
|
|
7c7f29 |
+ ID suffix = 0; /* random- to suppress compiler warning */
|
|
|
7c7f29 |
idl_range_id_pair *leftover = NULL;
|
|
|
7c7f29 |
size_t leftoverlen = 32;
|
|
|
7c7f29 |
int leftovercnt = 0;
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c b/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
|
|
|
7c7f29 |
index 9302410..698be66 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
|
|
|
7c7f29 |
@@ -1155,6 +1155,11 @@ ldbm_instance_post_delete_instance_entry_callback(Slapi_PBlock *pb, Slapi_Entry*
|
|
|
7c7f29 |
rc = PR_Delete(dbp);
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
PR_ASSERT(rc == 0);
|
|
|
7c7f29 |
+ if (rc != 0) {
|
|
|
7c7f29 |
+ LDAPDebug1Arg(LDAP_DEBUG_ANY,
|
|
|
7c7f29 |
+ "ldbm_instance_post_delete_instance_entry_callback:"
|
|
|
7c7f29 |
+ " failed to delete %s\n", dbp);
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
PR_smprintf_free(dbp);
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
PR_CloseDir(dirhandle);
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/back-ldbm/ldif2ldbm.c b/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
|
|
|
7c7f29 |
index 0b2eab2..52338c2 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
|
|
|
7c7f29 |
@@ -1009,7 +1009,6 @@ export_one_entry(struct ldbminfo *li,
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
slapi_ch_free_string(&pw;;
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
- rc = 0;
|
|
|
7c7f29 |
data.data = slapi_entry2str_with_options(expargs->ep->ep_entry,
|
|
|
7c7f29 |
&len, expargs->options);
|
|
|
7c7f29 |
data.size = len + 1;
|
|
|
7c7f29 |
@@ -1018,10 +1017,14 @@ export_one_entry(struct ldbminfo *li,
|
|
|
7c7f29 |
char idstr[32];
|
|
|
7c7f29 |
|
|
|
7c7f29 |
sprintf(idstr, "# entry-id: %lu\n", (u_long)expargs->ep->ep_id);
|
|
|
7c7f29 |
- write(expargs->fd, idstr, strlen(idstr));
|
|
|
7c7f29 |
+ rc = write(expargs->fd, idstr, strlen(idstr));
|
|
|
7c7f29 |
+ PR_ASSERT(rc > 0);
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
- write(expargs->fd, data.data, len);
|
|
|
7c7f29 |
- write(expargs->fd, "\n", 1);
|
|
|
7c7f29 |
+ rc = write(expargs->fd, data.data, len);
|
|
|
7c7f29 |
+ PR_ASSERT(rc > 0);
|
|
|
7c7f29 |
+ rc = write(expargs->fd, "\n", 1);
|
|
|
7c7f29 |
+ PR_ASSERT(rc > 0);
|
|
|
7c7f29 |
+ rc = 0;
|
|
|
7c7f29 |
if ((*expargs->cnt) % 1000 == 0) {
|
|
|
7c7f29 |
int percent;
|
|
|
7c7f29 |
|
|
|
7c7f29 |
@@ -1350,7 +1353,9 @@ ldbm_back_ldbm2ldif( Slapi_PBlock *pb )
|
|
|
7c7f29 |
*/
|
|
|
7c7f29 |
|
|
|
7c7f29 |
sprintf(vstr, "version: %d\n\n", myversion);
|
|
|
7c7f29 |
- write(fd, vstr, strlen(vstr));
|
|
|
7c7f29 |
+ rc = write(fd, vstr, strlen(vstr));
|
|
|
7c7f29 |
+ PR_ASSERT(rc > 0);
|
|
|
7c7f29 |
+ rc = 0;
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
|
|
|
7c7f29 |
eargs.decrypt = decrypt;
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/detach.c b/ldap/servers/slapd/detach.c
|
|
|
7c7f29 |
index b5af952..b055a5c 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/detach.c
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/detach.c
|
|
|
7c7f29 |
@@ -48,7 +48,7 @@ int
|
|
|
7c7f29 |
detach( int slapd_exemode, int importexport_encrypt,
|
|
|
7c7f29 |
int s_port, daemon_ports_t *ports_info )
|
|
|
7c7f29 |
{
|
|
|
7c7f29 |
- int i, sd;
|
|
|
7c7f29 |
+ int i, sd, rc;
|
|
|
7c7f29 |
char *workingdir = 0;
|
|
|
7c7f29 |
char *errorlog = 0;
|
|
|
7c7f29 |
char *ptr = 0;
|
|
|
7c7f29 |
@@ -84,13 +84,15 @@ detach( int slapd_exemode, int importexport_encrypt,
|
|
|
7c7f29 |
if ( NULL == workingdir ) {
|
|
|
7c7f29 |
errorlog = config_get_errorlog();
|
|
|
7c7f29 |
if ( NULL == errorlog ) {
|
|
|
7c7f29 |
- (void) chdir( "/" );
|
|
|
7c7f29 |
+ rc = chdir( "/" );
|
|
|
7c7f29 |
+ PR_ASSERT(rc == 0);
|
|
|
7c7f29 |
} else {
|
|
|
7c7f29 |
if ((ptr = strrchr(errorlog, '/')) ||
|
|
|
7c7f29 |
(ptr = strrchr(errorlog, '\\'))) {
|
|
|
7c7f29 |
*ptr = 0;
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
- (void) chdir( errorlog );
|
|
|
7c7f29 |
+ rc = chdir( errorlog );
|
|
|
7c7f29 |
+ PR_ASSERT(rc == 0);
|
|
|
7c7f29 |
config_set_workingdir(CONFIG_WORKINGDIR_ATTRIBUTE, errorlog, NULL, 1);
|
|
|
7c7f29 |
slapi_ch_free_string(&errorlog);
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
@@ -99,7 +101,8 @@ detach( int slapd_exemode, int importexport_encrypt,
|
|
|
7c7f29 |
if (config_set_workingdir(CONFIG_WORKINGDIR_ATTRIBUTE, workingdir, NULL, 0) == LDAP_OPERATIONS_ERROR) {
|
|
|
7c7f29 |
return 1;
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
- (void) chdir( workingdir );
|
|
|
7c7f29 |
+ rc = chdir( workingdir );
|
|
|
7c7f29 |
+ PR_ASSERT(rc == 0);
|
|
|
7c7f29 |
slapi_ch_free_string(&workingdir);
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/localhost.c b/ldap/servers/slapd/localhost.c
|
|
|
7c7f29 |
index 2c40493..7b4e903 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/localhost.c
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/localhost.c
|
|
|
7c7f29 |
@@ -118,9 +118,13 @@ find_localhost_DNS()
|
|
|
7c7f29 |
#ifndef NO_DOMAINNAME
|
|
|
7c7f29 |
if (domain == NULL) {
|
|
|
7c7f29 |
/* No domain found. Try getdomainname. */
|
|
|
7c7f29 |
- getdomainname (line, sizeof(line));
|
|
|
7c7f29 |
- LDAPDebug (LDAP_DEBUG_CONFIG, "getdomainname(%s)\n", line, 0, 0);
|
|
|
7c7f29 |
- if (line[0] != 0) {
|
|
|
7c7f29 |
+ line[0] = '\0';
|
|
|
7c7f29 |
+ if (getdomainname(line, sizeof(line)) < 0) { /* failure */
|
|
|
7c7f29 |
+ slapi_log_error(SLAPI_LOG_FATAL, "localhost_DNS", "getdomainname failed\n");
|
|
|
7c7f29 |
+ } else {
|
|
|
7c7f29 |
+ slapi_log_error(SLAPI_LOG_CONFIG, "localhost_DNS", "getdomainname(%s)\n", line);
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
+ if (line[0] != '\0') {
|
|
|
7c7f29 |
domain = &line[0];
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/protect_db.c b/ldap/servers/slapd/protect_db.c
|
|
|
7c7f29 |
index b22daa1..4579852 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/protect_db.c
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/protect_db.c
|
|
|
7c7f29 |
@@ -42,7 +42,7 @@ grab_lockfile()
|
|
|
7c7f29 |
{
|
|
|
7c7f29 |
pid_t pid, owning_pid;
|
|
|
7c7f29 |
char lockfile[MAXPATHLEN];
|
|
|
7c7f29 |
- int fd, x;
|
|
|
7c7f29 |
+ int fd, x, rc;
|
|
|
7c7f29 |
int removed_lockfile = 0;
|
|
|
7c7f29 |
struct timeval t;
|
|
|
7c7f29 |
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
|
|
|
7c7f29 |
@@ -60,8 +60,12 @@ grab_lockfile()
|
|
|
7c7f29 |
/* Try to grab it */
|
|
|
7c7f29 |
if ((fd = open(lockfile, O_RDWR | O_CREAT | O_EXCL, 0644)) != -1) {
|
|
|
7c7f29 |
/* We got the lock, write our pid to the file */
|
|
|
7c7f29 |
- write(fd, (void *) &pid, sizeof(pid_t));
|
|
|
7c7f29 |
- close(fd);
|
|
|
7c7f29 |
+ rc = write(fd, (void *) &pid, sizeof(pid_t));
|
|
|
7c7f29 |
+ close(fd);
|
|
|
7c7f29 |
+ if (rc < 0) {
|
|
|
7c7f29 |
+ fprintf(stderr, ERROR_WRITING_LOCKFILE, lockfile);
|
|
|
7c7f29 |
+ return rc;
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
return 0;
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
|
|
|
7c7f29 |
@@ -74,13 +78,17 @@ grab_lockfile()
|
|
|
7c7f29 |
|
|
|
7c7f29 |
while(1) {
|
|
|
7c7f29 |
/* Try to grab the lockfile NUM_TRIES times waiting WAIT_TIME milliseconds after each try */
|
|
|
7c7f29 |
- t.tv_sec = 0;
|
|
|
7c7f29 |
- t.tv_usec = WAIT_TIME * 1000;
|
|
|
7c7f29 |
+ t.tv_sec = 0;
|
|
|
7c7f29 |
+ t.tv_usec = WAIT_TIME * 1000;
|
|
|
7c7f29 |
for(x = 0; x < NUM_TRIES; x++) {
|
|
|
7c7f29 |
if ((fd = open(lockfile, O_RDWR | O_CREAT | O_EXCL, 0644)) != -1) {
|
|
|
7c7f29 |
/* Got the lock */
|
|
|
7c7f29 |
- write(fd, (void *) &pid, sizeof(pid_t));
|
|
|
7c7f29 |
- close(fd);
|
|
|
7c7f29 |
+ rc = write(fd, (void *) &pid, sizeof(pid_t));
|
|
|
7c7f29 |
+ close(fd);
|
|
|
7c7f29 |
+ if (rc < 0) {
|
|
|
7c7f29 |
+ fprintf(stderr, ERROR_WRITING_LOCKFILE, lockfile);
|
|
|
7c7f29 |
+ return rc;
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
return 0;
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
select(0, NULL, NULL, NULL, &t);
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/protect_db.h b/ldap/servers/slapd/protect_db.h
|
|
|
7c7f29 |
index 0f729a2..66adfb3 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/protect_db.h
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/protect_db.h
|
|
|
7c7f29 |
@@ -26,6 +26,9 @@ void remove_slapd_process();
|
|
|
7c7f29 |
#define ERROR_ACCESSING_LOCKFILE "Error - Problem accessing the lockfile %s\n"
|
|
|
7c7f29 |
/* name of lockfile */
|
|
|
7c7f29 |
|
|
|
7c7f29 |
+#define ERROR_WRITING_LOCKFILE "Error - Problem writing the lockfile %s\n"
|
|
|
7c7f29 |
+ /* name of lockfile */
|
|
|
7c7f29 |
+
|
|
|
7c7f29 |
#define LOCKFILE_DEAD_OWNER "Error - The lockfile, %s, is held by process %d,\nwhich no longer seems to be running. If this is\nthe case, please remove the lockfile\n"
|
|
|
7c7f29 |
/* name of lockfile, pid of owning process */
|
|
|
7c7f29 |
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/saslbind.c b/ldap/servers/slapd/saslbind.c
|
|
|
7c7f29 |
index eb68209..37175f4 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/saslbind.c
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/saslbind.c
|
|
|
7c7f29 |
@@ -547,6 +547,9 @@ int ids_sasl_init(void)
|
|
|
7c7f29 |
LDAPDebug( LDAP_DEBUG_TRACE, "=> ids_sasl_init\n", 0, 0, 0 );
|
|
|
7c7f29 |
|
|
|
7c7f29 |
PR_ASSERT(inited == 0);
|
|
|
7c7f29 |
+ if (inited != 0) {
|
|
|
7c7f29 |
+ LDAPDebug0Args(LDAP_DEBUG_ANY, "ids_sasl_init is called more than once.\n");
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
inited = 1;
|
|
|
7c7f29 |
|
|
|
7c7f29 |
serverfqdn = get_localhost_DNS();
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/tools/ldclt/ldapfct.c b/ldap/servers/slapd/tools/ldclt/ldapfct.c
|
|
|
7c7f29 |
index e13983d..f084cb4 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/tools/ldclt/ldapfct.c
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/tools/ldclt/ldapfct.c
|
|
|
7c7f29 |
@@ -2552,7 +2552,10 @@ int ldclt_write_genldif_nb;
|
|
|
7c7f29 |
void
|
|
|
7c7f29 |
ldclt_flush_genldif (void)
|
|
|
7c7f29 |
{
|
|
|
7c7f29 |
- write (mctx.genldifFile, ldclt_write_genldif_buf, ldclt_write_genldif_nb);
|
|
|
7c7f29 |
+ if (write (mctx.genldifFile, ldclt_write_genldif_buf, ldclt_write_genldif_nb) < 0) {
|
|
|
7c7f29 |
+ printf("ldclt[%d]: ldclt_flush_genldif: Failed to write (%s) error=%d\n",
|
|
|
7c7f29 |
+ mctx.pid, ldclt_write_genldif_buf, errno);
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
ldclt_write_genldif_pt = ldclt_write_genldif_buf;
|
|
|
7c7f29 |
ldclt_write_genldif_nb = 0;
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/tools/ldif.c b/ldap/servers/slapd/tools/ldif.c
|
|
|
7c7f29 |
index 1050fbd..5973c6b 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/tools/ldif.c
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/tools/ldif.c
|
|
|
7c7f29 |
@@ -132,7 +132,10 @@ int main( int argc, char **argv )
|
|
|
7c7f29 |
free( buf );
|
|
|
7c7f29 |
return( 1 );
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
- (void)fgets(buf+curlen, maxlen/2 + 1, stdin);
|
|
|
7c7f29 |
+ if (NULL == fgets(buf+curlen, maxlen/2 + 1, stdin)) {
|
|
|
7c7f29 |
+ /* no more input to read. */
|
|
|
7c7f29 |
+ break;
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
/* we have a full line, chop potential newline and turn into ldif */
|
|
|
7c7f29 |
if( buf[curlen-1] == '\n' )
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/tools/mmldif.c b/ldap/servers/slapd/tools/mmldif.c
|
|
|
7c7f29 |
index 1f846d0..ddfaf6c 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/tools/mmldif.c
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/tools/mmldif.c
|
|
|
7c7f29 |
@@ -766,8 +766,7 @@ readrec(edfFILE * edf1, attrib1_t ** attrib)
|
|
|
7c7f29 |
while (*vptr == ' ') vptr++; /* skip optional spaces */
|
|
|
7c7f29 |
b64 = initDec64((unsigned char *)att->value, 0x20000);
|
|
|
7c7f29 |
if (Dec64(b64, (unsigned char *) vptr)) {
|
|
|
7c7f29 |
- LDAPDebug(LDAP_DEBUG_TRACE, "%s\n invalid input line\n",
|
|
|
7c7f29 |
- line, 0, 0);
|
|
|
7c7f29 |
+ LDAPDebug(LDAP_DEBUG_TRACE, "%s\n invalid input line\n", line, 0, 0);
|
|
|
7c7f29 |
continue; /* invalid line, but we'll just skip it */
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
toolong = FALSE;
|
|
|
7c7f29 |
@@ -775,7 +774,11 @@ readrec(edfFILE * edf1, attrib1_t ** attrib)
|
|
|
7c7f29 |
lookahead = fgetc(edf1->fp);
|
|
|
7c7f29 |
if (lookahead != ' ')
|
|
|
7c7f29 |
break;
|
|
|
7c7f29 |
- (void)fgets(line, sizeof(line), edf1->fp);
|
|
|
7c7f29 |
+ line[0] = '\0';
|
|
|
7c7f29 |
+ if (NULL == fgets(line, sizeof(line), edf1->fp)) {
|
|
|
7c7f29 |
+ LDAPDebug0Args(LDAP_DEBUG_TRACE, "readrec: failed to read line\n");
|
|
|
7c7f29 |
+ break;
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
len = strlen(line);
|
|
|
7c7f29 |
for (lptr = line+len-1; len; len--, lptr--) {
|
|
|
7c7f29 |
if ((*lptr != '\n') && (*lptr != '\r'))
|
|
|
7c7f29 |
@@ -785,16 +788,14 @@ readrec(edfFILE * edf1, attrib1_t ** attrib)
|
|
|
7c7f29 |
rc = Dec64(b64, (unsigned char *)line);
|
|
|
7c7f29 |
if (rc == -1)
|
|
|
7c7f29 |
{
|
|
|
7c7f29 |
- LDAPDebug(LDAP_DEBUG_TRACE,
|
|
|
7c7f29 |
- "%s\n invalid input line\n", line, 0, 0);
|
|
|
7c7f29 |
+ LDAPDebug(LDAP_DEBUG_TRACE, "%s\n invalid input line\n", line, 0, 0);
|
|
|
7c7f29 |
continue; /* invalid line, but we'll just skip it */
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
|
|
|
7c7f29 |
if (rc) {
|
|
|
7c7f29 |
if (!toolong) {
|
|
|
7c7f29 |
toolong = TRUE;
|
|
|
7c7f29 |
- LDAPDebug(LDAP_DEBUG_TRACE,
|
|
|
7c7f29 |
- "%s\n line too long\n", line, 0, 0);
|
|
|
7c7f29 |
+ LDAPDebug(LDAP_DEBUG_TRACE, "%s\n line too long\n", line, 0, 0);
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
continue;
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
@@ -813,7 +814,10 @@ readrec(edfFILE * edf1, attrib1_t ** attrib)
|
|
|
7c7f29 |
lookahead = fgetc(edf1->fp);
|
|
|
7c7f29 |
if (lookahead != ' ')
|
|
|
7c7f29 |
break;
|
|
|
7c7f29 |
- (void)fgets(line, sizeof(line), edf1->fp);
|
|
|
7c7f29 |
+ if (NULL == fgets(line, sizeof(line), edf1->fp)) {
|
|
|
7c7f29 |
+ LDAPDebug0Args(LDAP_DEBUG_TRACE, "readrec: failed to read line\n");
|
|
|
7c7f29 |
+ break;
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
len = strlen(line);
|
|
|
7c7f29 |
for (lptr = line+len-1; len; len--, lptr--) {
|
|
|
7c7f29 |
if ((*lptr != '\n') && (*lptr != '\r'))
|
|
|
7c7f29 |
diff --git a/ldap/servers/slapd/util.c b/ldap/servers/slapd/util.c
|
|
|
7c7f29 |
index a5327d1..1ebdf2e 100644
|
|
|
7c7f29 |
--- a/ldap/servers/slapd/util.c
|
|
|
7c7f29 |
+++ b/ldap/servers/slapd/util.c
|
|
|
7c7f29 |
@@ -1592,7 +1592,9 @@ int util_info_sys_pages(size_t *pagesize, size_t *pages, size_t *procpages, size
|
|
|
7c7f29 |
return 1;
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
while (! feof(f)) {
|
|
|
7c7f29 |
- fgets(s, 79, f);
|
|
|
7c7f29 |
+ if (!fgets(s, 79, f)) {
|
|
|
7c7f29 |
+ break; /* error or eof */
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
if (feof(f)) {
|
|
|
7c7f29 |
break;
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
@@ -1614,8 +1616,9 @@ int util_info_sys_pages(size_t *pagesize, size_t *pages, size_t *procpages, size
|
|
|
7c7f29 |
return 1;
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
while (! feof(fm)) {
|
|
|
7c7f29 |
- fgets(s, 79, fm);
|
|
|
7c7f29 |
- /* Is this really needed? */
|
|
|
7c7f29 |
+ if (!fgets(s, 79, fm)) {
|
|
|
7c7f29 |
+ break; /* error or eof */
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
if (feof(fm)) {
|
|
|
7c7f29 |
break;
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
diff --git a/ldap/servers/snmp/main.c b/ldap/servers/snmp/main.c
|
|
|
7c7f29 |
index 3f96627..ea5050b 100644
|
|
|
7c7f29 |
--- a/ldap/servers/snmp/main.c
|
|
|
7c7f29 |
+++ b/ldap/servers/snmp/main.c
|
|
|
7c7f29 |
@@ -44,7 +44,7 @@ main (int argc, char *argv[]) {
|
|
|
7c7f29 |
netsnmp_log_handler *log_hdl = NULL;
|
|
|
7c7f29 |
int c, log_level = LOG_WARNING;
|
|
|
7c7f29 |
struct stat logdir_s;
|
|
|
7c7f29 |
- pid_t child_pid;
|
|
|
7c7f29 |
+ pid_t child_pid = 0;
|
|
|
7c7f29 |
FILE *pid_fp;
|
|
|
7c7f29 |
|
|
|
7c7f29 |
/* Load options */
|
|
|
7c7f29 |
@@ -74,7 +74,11 @@ main (int argc, char *argv[]) {
|
|
|
7c7f29 |
|
|
|
7c7f29 |
/* check if we're already running as another process */
|
|
|
7c7f29 |
if ((pid_fp = fopen(pidfile, "r")) != NULL) {
|
|
|
7c7f29 |
- fscanf(pid_fp, "%d", &child_pid);
|
|
|
7c7f29 |
+ int rc = fscanf(pid_fp, "%d", &child_pid);
|
|
|
7c7f29 |
+ if ((rc == 0) || (rc == EOF)) {
|
|
|
7c7f29 |
+ printf("ldap-agent: Failed to get pid from %s\n", pidfile);
|
|
|
7c7f29 |
+ exit(1);
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
fclose(pid_fp);
|
|
|
7c7f29 |
if (kill(child_pid, SIGUSR1) == 0) {
|
|
|
7c7f29 |
printf("ldap-agent: Already running as pid %d!\n", child_pid);
|
|
|
7c7f29 |
@@ -145,6 +149,7 @@ main (int argc, char *argv[]) {
|
|
|
7c7f29 |
/* run as a daemon */
|
|
|
7c7f29 |
if (netsnmp_daemonize(0, 0)) {
|
|
|
7c7f29 |
int i;
|
|
|
7c7f29 |
+ int rc;
|
|
|
7c7f29 |
|
|
|
7c7f29 |
/* sleep to allow pidfile to be created by child */
|
|
|
7c7f29 |
for (i=0; i < 3; i++) {
|
|
|
7c7f29 |
@@ -159,7 +164,11 @@ main (int argc, char *argv[]) {
|
|
|
7c7f29 |
exit(1);
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
|
|
|
7c7f29 |
- fscanf(pid_fp, "%d", &child_pid);
|
|
|
7c7f29 |
+ rc = fscanf(pid_fp, "%d", &child_pid);
|
|
|
7c7f29 |
+ if ((rc == 0) || (rc == EOF)) {
|
|
|
7c7f29 |
+ printf("ldap-agent: Failed to get pid from %s\n", pidfile);
|
|
|
7c7f29 |
+ exit(1);
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
fclose(pid_fp);
|
|
|
7c7f29 |
printf("ldap-agent: Started as pid %d\n", child_pid);
|
|
|
7c7f29 |
exit(0);
|
|
|
7c7f29 |
diff --git a/lib/base/file.cpp b/lib/base/file.cpp
|
|
|
7c7f29 |
index 8c9274a..ad4333e 100644
|
|
|
7c7f29 |
--- a/lib/base/file.cpp
|
|
|
7c7f29 |
+++ b/lib/base/file.cpp
|
|
|
7c7f29 |
@@ -38,7 +38,6 @@ extern "C" char *nscperror_lookup(int err);
|
|
|
7c7f29 |
/* PRFileDesc * SYS_ERROR_FD = NULL; */
|
|
|
7c7f29 |
|
|
|
7c7f29 |
const int errbuf_size = 256;
|
|
|
7c7f29 |
-const unsigned int LOCKFILERANGE=0x7FFFFFFF;
|
|
|
7c7f29 |
PRLock *_atomic_write_lock = NULL;
|
|
|
7c7f29 |
|
|
|
7c7f29 |
/* --------------------------------- stat --------------------------------- */
|
|
|
7c7f29 |
diff --git a/lib/base/fsmutex.cpp b/lib/base/fsmutex.cpp
|
|
|
7c7f29 |
index e8f2aff..a0e30fd 100644
|
|
|
7c7f29 |
--- a/lib/base/fsmutex.cpp
|
|
|
7c7f29 |
+++ b/lib/base/fsmutex.cpp
|
|
|
7c7f29 |
@@ -85,11 +85,15 @@ fsmutex_init(char *name, int number, int flags)
|
|
|
7c7f29 |
NSAPI_PUBLIC void
|
|
|
7c7f29 |
fsmutex_setowner(FSMUTEX fsm, uid_t uid, gid_t gid)
|
|
|
7c7f29 |
{
|
|
|
7c7f29 |
- if(!geteuid())
|
|
|
7c7f29 |
- (void) chown( ((fsmutex_s *)fsm)->id, uid, gid);
|
|
|
7c7f29 |
+ if(!geteuid()) {
|
|
|
7c7f29 |
+ int rc = chown( ((fsmutex_s *)fsm)->id, uid, gid);
|
|
|
7c7f29 |
+ PR_ASSERT(rc == 0);
|
|
|
7c7f29 |
+ if (rc != 0 ) {
|
|
|
7c7f29 |
+ return; /* just to suppress compiler warning... */
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
+ }
|
|
|
7c7f29 |
}
|
|
|
7c7f29 |
|
|
|
7c7f29 |
-
|
|
|
7c7f29 |
/* -------------------------- fsmutex_terminate --------------------------- */
|
|
|
7c7f29 |
|
|
|
7c7f29 |
static void
|
|
|
7c7f29 |
--
|
|
|
7c7f29 |
2.4.11
|
|
|
7c7f29 |
|