summaryrefslogtreecommitdiffstats
path: root/ldap/admin/src
diff options
context:
space:
mode:
authorRich Megginson <rmeggins@redhat.com>2005-03-11 03:47:36 +0000
committerRich Megginson <rmeggins@redhat.com>2005-03-11 03:47:36 +0000
commit9667f84c94b16d51743bea68df24aeee57bf6f82 (patch)
tree3e4ac798dc26f0fb3c7883c88d83c5e254f08384 /ldap/admin/src
parent5a9fd42bc4bfc2ca4a4fad2f10881ea16cf504ea (diff)
downloadds-9667f84c94b16d51743bea68df24aeee57bf6f82.tar.gz
ds-9667f84c94b16d51743bea68df24aeee57bf6f82.tar.xz
ds-9667f84c94b16d51743bea68df24aeee57bf6f82.zip
This one is mostly strcpy/strcat checking, checking for null strings before strlen, removing some dead code, other odds and ends.
Diffstat (limited to 'ldap/admin/src')
-rw-r--r--ldap/admin/src/addindex.c5
-rw-r--r--ldap/admin/src/create_instance.c52
-rw-r--r--ldap/admin/src/latest_file.c3
-rw-r--r--ldap/admin/src/script-gen.c3
4 files changed, 35 insertions, 28 deletions
diff --git a/ldap/admin/src/addindex.c b/ldap/admin/src/addindex.c
index 608bef6f..84b0bdbf 100644
--- a/ldap/admin/src/addindex.c
+++ b/ldap/admin/src/addindex.c
@@ -51,6 +51,11 @@ int main(int argc, char *argv[])
attrs = strdup( attributes );
+ if (attrs == NULL) {
+ rpt_err(DS_MEMORY_ERROR, "Out of memory!", NULL, NULL);
+ return 1;
+ }
+
/* Allocate for worst possible case */
attrList = (char **)malloc(sizeof(*attrList) * (strlen(attrs)+1));
nAttrs = 0;
diff --git a/ldap/admin/src/create_instance.c b/ldap/admin/src/create_instance.c
index d2a332ac..cd81741f 100644
--- a/ldap/admin/src/create_instance.c
+++ b/ldap/admin/src/create_instance.c
@@ -440,21 +440,21 @@ static char *sanity_check(server_config_s *cf, char *param_name)
{
if( (t = create_instance_checkport(cf->bindaddr, cf->servport)) )
{
- strcpy(param_name, "servport");
+ PL_strncpyz(param_name, "servport", BIG_LINE);
return t;
}
if ( cf->secserv && (strcmp(cf->secserv, "on") == 0) && (cf->secservport != NULL) &&
(*(cf->secservport) != '\0') ) {
if ( (t = create_instance_checkport(cf->bindaddr, cf->secservport)) ) {
- strcpy(param_name, "secservport");
+ PL_strncpyz(param_name, "secservport", BIG_LINE);
return t;
}
}
if ( cf->ntsynch && (strcmp(cf->ntsynch, "on") == 0) && (cf->ntsynchport != NULL) &&
(*(cf->ntsynchport) != '\0') ) {
if ( (t = create_instance_checkport(cf->bindaddr, cf->ntsynchport)) ) {
- strcpy(param_name, "ntsynchport");
+ PL_strncpyz(param_name, "ntsynchport", BIG_LINE);
return t;
}
}
@@ -463,7 +463,7 @@ static char *sanity_check(server_config_s *cf, char *param_name)
/* is the server identifier good? */
for(x=0; cf->servid[x]; x++) {
if(strchr("/ &;`'\"|*!?~<>^()[]{}$\\", cf->servid[x])) {
- strcpy(param_name, "servid");
+ PL_strncpyz(param_name, "servid", BIG_LINE);
return make_error("You used a shell-specific character in "
"your server id (the character was %c).",
cf->servid[x]);
@@ -476,7 +476,7 @@ static char *sanity_check(server_config_s *cf, char *param_name)
/* Not an error to upgrade! ???
if ( !cf->upgradingServer ) {
if(create_instance_exists(fn)) {
- strcpy(param_name, "servid");
+ PL_strncpyz(param_name, "servid", BIG_LINE);
return make_error ("A server named '%s' already exists."
"\nPlease choose another server identifier.",
cf->servid);
@@ -487,7 +487,7 @@ static char *sanity_check(server_config_s *cf, char *param_name)
#ifdef XP_UNIX
if( (t = create_instance_checkuser(cf->servuser)) )
{
- strcpy(param_name, "servuser");
+ PL_strncpyz(param_name, "servuser", BIG_LINE);
return t;
}
#endif
@@ -496,53 +496,53 @@ static char *sanity_check(server_config_s *cf, char *param_name)
#ifdef XP_UNIX
if((!create_instance_numbers(cf->numprocs)) || (atoi(cf->numprocs) <= 0))
{
- strcpy(param_name, "numprocs");
+ PL_strncpyz(param_name, "numprocs", BIG_LINE);
return ("The number of processes must be not be zero or "
"negative.");
}
#endif
if((!create_instance_numbers(cf->maxthreads)) || (atoi(cf->maxthreads) <= 0))
{
- strcpy(param_name, "maxthreads");
+ PL_strncpyz(param_name, "maxthreads", BIG_LINE);
return ("The maximum threads must be not be zero or negative.");
}
if((!create_instance_numbers(cf->minthreads)) || (atoi(cf->minthreads) <= 0))
{
- strcpy(param_name, "minthreads");
+ PL_strncpyz(param_name, "minthreads", BIG_LINE);
return ("The minumum threads must be not be zero or negative.");
}
if((atoi(cf->minthreads)) > (atoi(cf->maxthreads)))
{
- strcpy(param_name, "minthreads");
+ PL_strncpyz(param_name, "minthreads", BIG_LINE);
return ("Minimum threads must be less than maximum threads.");
}
/* see if the DN parameters are valid DNs */
if (!cf->use_existing_user_ds && (t = isAValidDN(cf->suffix)))
{
- strcpy(param_name, "suffix");
+ PL_strncpyz(param_name, "suffix", BIG_LINE);
return t;
}
checkForLDAPv2Quoting(cf->suffix);
if (NULL != (t = isAValidDN(cf->rootdn)))
{
- strcpy(param_name, "rootdn");
+ PL_strncpyz(param_name, "rootdn", BIG_LINE);
return t;
}
checkForLDAPv2Quoting(cf->rootdn);
if (cf->replicationdn && *cf->replicationdn && (t = isAValidDN(cf->replicationdn)))
{
- strcpy(param_name, "replicationdn");
+ PL_strncpyz(param_name, "replicationdn", BIG_LINE);
return t;
}
checkForLDAPv2Quoting(cf->replicationdn);
if (cf->consumerdn && *cf->consumerdn && (t = isAValidDN(cf->consumerdn)))
{
- strcpy(param_name, "consumerdn");
+ PL_strncpyz(param_name, "consumerdn", BIG_LINE);
return t;
}
checkForLDAPv2Quoting(cf->consumerdn);
@@ -550,7 +550,7 @@ static char *sanity_check(server_config_s *cf, char *param_name)
if (cf->changelogsuffix && *cf->changelogsuffix &&
(t = isAValidDN(cf->changelogsuffix)))
{
- strcpy(param_name, "changelogsuffix");
+ PL_strncpyz(param_name, "changelogsuffix", BIG_LINE);
return t;
}
checkForLDAPv2Quoting(cf->changelogsuffix);
@@ -558,7 +558,7 @@ static char *sanity_check(server_config_s *cf, char *param_name)
if (cf->netscaperoot && *cf->netscaperoot &&
(t = isAValidDN(cf->netscaperoot)))
{
- strcpy(param_name, "netscaperoot");
+ PL_strncpyz(param_name, "netscaperoot", BIG_LINE);
return t;
}
checkForLDAPv2Quoting(cf->netscaperoot);
@@ -566,32 +566,32 @@ static char *sanity_check(server_config_s *cf, char *param_name)
if (cf->samplesuffix && *cf->samplesuffix &&
(t = isAValidDN(cf->samplesuffix)))
{
- strcpy(param_name, "samplesuffix");
+ PL_strncpyz(param_name, "samplesuffix", BIG_LINE);
return t;
}
checkForLDAPv2Quoting(cf->samplesuffix);
if (NULL != (t = contains8BitChars(cf->rootpw)))
{
- strcpy(param_name, "rootpw");
+ PL_strncpyz(param_name, "rootpw", BIG_LINE);
return t;
}
if (NULL != (t = contains8BitChars(cf->cfg_sspt_uidpw)))
{
- strcpy(param_name, "cfg_sspt_uidpw");
+ PL_strncpyz(param_name, "cfg_sspt_uidpw", BIG_LINE);
return t;
}
if (NULL != (t = contains8BitChars(cf->replicationpw)))
{
- strcpy(param_name, "replicationpw");
+ PL_strncpyz(param_name, "replicationpw", BIG_LINE);
return t;
}
if (NULL != (t = contains8BitChars(cf->consumerpw)))
{
- strcpy(param_name, "consumerpw");
+ PL_strncpyz(param_name, "consumerpw", BIG_LINE);
return t;
}
@@ -605,7 +605,7 @@ static char *sanity_check(server_config_s *cf, char *param_name)
{
if (NULL != (t = contains8BitChars(cf->cfg_sspt_uid)))
{
- strcpy(param_name, "cfg_sspt_uid");
+ PL_strncpyz(param_name, "cfg_sspt_uid", BIG_LINE);
return t;
}
}
@@ -1107,7 +1107,7 @@ char *create_server(server_config_s *cf, char *param_name)
#else
/* Abort if the service exists on NT */
if (t = service_exists(cf->servid)) {
- strcpy(param_name, "servid");
+ PL_strncpyz(param_name, "servid", BIG_LINE);
return t;
}
#endif
@@ -4397,7 +4397,7 @@ static char *install_ds(char *sroot, server_config_s *cf, char *param_name)
/* find the server's UID and GID */
if (cf->servuser && *(cf->servuser)) {
if ((pw = getpwnam (cf->servuser)) == NULL) {
- strcpy(param_name, "servuser");
+ PL_strncpyz(param_name, "servuser", BIG_LINE);
return make_error("Could not find UID and GID of user '%s'.",
cf->servuser);
} else if (pw->pw_name == NULL) {
@@ -4606,11 +4606,11 @@ static char *install_ds(char *sroot, server_config_s *cf, char *param_name)
memset(&slapd_conf, 0, sizeof(SLAPD_CONFIG));
if (sroot)
- strcpy(slapd_conf.slapd_server_root, sroot);
+ PL_strncpyz(slapd_conf.slapd_server_root, sroot, sizeof(slapd_conf.slapd_server_root));
if (cf->servport)
slapd_conf.port = atoi(cf->servport);
if (cf->servname)
- strcpy(slapd_conf.host, cf->servname);
+ PL_strncpyz(slapd_conf.host, cf->servname, sizeof(slapd_conf.host));
status = config_suitespot(&slapd_conf, &query_vars);
if (status == -1) /* invalid or null arguments or configuration */
diff --git a/ldap/admin/src/latest_file.c b/ldap/admin/src/latest_file.c
index 41f27d9a..a68ea01b 100644
--- a/ldap/admin/src/latest_file.c
+++ b/ldap/admin/src/latest_file.c
@@ -56,7 +56,8 @@ int main (int argc, char **argv)
szOutput = argv[2];
/* Get directory part of path */
- strcpy( dir, szWildcardFileSpec );
+ strncpy( dir, szWildcardFileSpec, sizeof(dir)-1 );
+ dir[sizeof(dir)-1] = (char)0;
dirEnd = strrchr( dir, '\\' );
if ( dirEnd != NULL ) {
*dirEnd = 0;
diff --git a/ldap/admin/src/script-gen.c b/ldap/admin/src/script-gen.c
index 0f93406a..bc364c9d 100644
--- a/ldap/admin/src/script-gen.c
+++ b/ldap/admin/src/script-gen.c
@@ -79,7 +79,8 @@ int generate_script(const char *inpath, const char *outpath, int mode,
/* not enough room, scratch it */
continue;
}
- strcpy(save_buffer, q+2);
+ strncpy(save_buffer, q+2, sizeof(save_buffer)-1);
+ save_buffer[sizeof(save_buffer)-1] = (char)0;
strcpy(p, table[i][1]);
strcat(p, save_buffer);
q = p;