Author: igalic
Date: Mon Sep 19 22:15:50 2011
New Revision: 1172860
URL: http://svn.apache.org/viewvc?rev=1172860&view=rev
Log:
TS-953: consolidate string copy/concat for the rest of mgmt/utils/.
Modified:
trafficserver/traffic/trunk/mgmt/utils/EnvBlock.cc
trafficserver/traffic/trunk/mgmt/utils/WebMgmtUtils.cc
Modified: trafficserver/traffic/trunk/mgmt/utils/EnvBlock.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/mgmt/utils/EnvBlock.cc?rev=1172860&r1=1172859&r2=1172860&view=diff
==============================================================================
--- trafficserver/traffic/trunk/mgmt/utils/EnvBlock.cc (original)
+++ trafficserver/traffic/trunk/mgmt/utils/EnvBlock.cc Mon Sep 19 22:15:50 2011
@@ -105,11 +105,11 @@ EnvBlock::toString(void)
while (ht_entry != NULL && i < str_len) {
name = (const char *) ink_hash_table_entry_key(table, ht_entry);
value = (const char *) ink_hash_table_entry_value(table, ht_entry);
- ink_strncpy(env_str + i, name, str_len - i);
+ ink_strlcpy(env_str + i, name, str_len - i);
i += strlen(name);
- ink_strncpy(env_str + i, "=", str_len - i);
+ ink_strlcpy(env_str + i, "=", str_len - i);
i++;
- ink_strncpy(env_str + i, value - i, str_len - i);
+ ink_strlcpy(env_str + i, value - i, str_len - i);
i += strlen(value) + 1;
ht_entry = ink_hash_table_iterator_next(table, &ht_iter);
}
Modified: trafficserver/traffic/trunk/mgmt/utils/WebMgmtUtils.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/mgmt/utils/WebMgmtUtils.cc?rev=1172860&r1=1172859&r2=1172860&view=diff
==============================================================================
--- trafficserver/traffic/trunk/mgmt/utils/WebMgmtUtils.cc (original)
+++ trafficserver/traffic/trunk/mgmt/utils/WebMgmtUtils.cc Mon Sep 19 22:15:50
2011
@@ -592,9 +592,9 @@ varStrFromName(const char *varNameConst,
if (data.rec_string == NULL) {
bufVal[0] = '\0';
} else if (strlen(data.rec_string) < (size_t) (bufLen - 1)) {
- ink_strncpy(bufVal, data.rec_string, bufLen);
+ ink_strlcpy(bufVal, data.rec_string, bufLen);
} else {
- ink_strncpy(bufVal, data.rec_string, bufLen);
+ ink_strlcpy(bufVal, data.rec_string, bufLen);
}
ats_free(data.rec_string);
break;
@@ -936,26 +936,26 @@ substituteForHTMLChars(const char *buffe
int inLength = strlen(buffer); // how long the orig buffer in
// Maximum character expansion is one to three
- unsigned int bufferToAllocate = (inLength * 5);
- safeBuf = new char[bufferToAllocate + 1];
+ unsigned int bufferToAllocate = (inLength * 5) + 1;
+ safeBuf = new char[bufferToAllocate];
safeCurrent = safeBuf;
while (*inCurrent != '\0') {
switch (*inCurrent) {
case '"':
- ink_strncpy(safeCurrent, """, bufferToAllocate);
+ ink_strlcpy(safeCurrent, """, bufferToAllocate);
safeCurrent += 6;
break;
case '<':
- ink_strncpy(safeCurrent, "<", bufferToAllocate);
+ ink_strlcpy(safeCurrent, "<", bufferToAllocate);
safeCurrent += 4;
break;
case '>':
- ink_strncpy(safeCurrent, ">", bufferToAllocate);
+ ink_strlcpy(safeCurrent, ">", bufferToAllocate);
safeCurrent += 4;
break;
case '&':
- ink_strncpy(safeCurrent, "&", bufferToAllocate);
+ ink_strlcpy(safeCurrent, "&", bufferToAllocate);
safeCurrent += 5;
break;
default:
@@ -1064,8 +1064,8 @@ appendDefaultDomain(char *hostname, int
if (strchr(hostname, '.') == NULL) {
if (_res.defdname[0] != '\0') {
if (bufLength - 2 >= (int) (strlen(hostname) + strlen(_res.defdname))) {
- strncat(hostname, ".", bufLength - strlen(hostname));
- strncat(hostname, _res.defdname, MAXDNAME - 2 - strlen(hostname));
+ ink_strlcat(hostname, ".", bufLength);
+ ink_strlcat(hostname, _res.defdname, bufLength);
} else {
if (error_before == 0) {
mgmt_log(stderr, "%s %s\n", "[appendDefaultDomain] Domain name is
too long.", msg);
@@ -1362,7 +1362,7 @@ processSpawn(const char *args[],
safebuf = substituteForHTMLChars(buffer);
if (safebuf) {
if (strlen(safebuf) < sizeof(buffer)) {
- ink_strncpy(buffer, safebuf, sizeof(buffer));
+ ink_strlcpy(buffer, safebuf, sizeof(buffer));
}
delete[]safebuf;
}
@@ -1427,7 +1427,7 @@ getFilesInDirectory(char *managedDir, Ex
// The fun of Solaris - readdir_r requires a buffer passed into it
// The man page says this obscene expression gives us the proper
// size
- dirEntry = (struct dirent *)ats_malloc(sizeof(struct dirent) + pathconf(".",
_PC_NAME_MAX) + 1);
+ dirEntry = (struct dirent *)alloca(sizeof(struct dirent) + pathconf(".",
_PC_NAME_MAX) + 1);
struct dirent *result;
while (readdir_r(dir, dirEntry, &result) == 0) {
@@ -1445,14 +1445,13 @@ getFilesInDirectory(char *managedDir, Ex
if (fileName && *fileName != '.') {
fileListEntry = (fileEntry *)ats_malloc(sizeof(fileEntry));
fileListEntry->c_time = fileInfo.st_ctime;
- ink_strncpy(fileListEntry->name, fileName, FILE_NAME_MAX);
+ ink_strlcpy(fileListEntry->name, fileName,
sizeof(fileListEntry->name));
fileList->addEntry(fileListEntry);
}
}
delete[]filePath;
}
- ats_free(dirEntry);
closedir(dir);
#else
// Append '\*' as a wildcard for FindFirstFile()
@@ -1476,7 +1475,7 @@ getFilesInDirectory(char *managedDir, Ex
if (fileName && *fileName != '.') {
fileListEntry = (fileEntry *)ats_malloc(sizeof(fileEntry));
fileListEntry->c_time = fileInfo.st_ctime;
- strcpy(fileListEntry->name, fileName);
+ ink_strlcpy(fileListEntry->name, fileName,
sizeof(fileListEntry->name));
fileList->addEntry(fileListEntry);
}
}
@@ -1510,23 +1509,23 @@ newPathString(const char *s1, const char
if (*s2 == '/') {
// If addpath is rooted, then rootpath is unused.
newStr = new char[addLen];
- strcpy(newStr, s2);
+ ink_strlcpy(newStr, s2, addLen);
return newStr;
}
if (!s1 || !*s1) {
// If there's no rootpath return the addpath
newStr = new char[addLen];
- strcpy(newStr, s2);
+ ink_strlcpy(newStr, s2, addLen);
return newStr;
}
srcLen = strlen(s1);
newStr = new char[srcLen + addLen + 1];
ink_assert(newStr != NULL);
- strcpy(newStr, s1);
+ ink_strlcpy(newStr, s1, srcLen + addLen + 1);
if (newStr[srcLen - 1] != '/')
newStr[srcLen++] = '/';
- strcpy(&newStr[srcLen], s2);
+ ink_strlcpy(&newStr[srcLen], s2, srcLen + addLen + 1);
return newStr;
}