Author: igalic
Date: Fri Sep 16 22:38:27 2011
New Revision: 1171837
URL: http://svn.apache.org/viewvc?rev=1171837&view=rev
Log:
TS-953: consolidate string copy/concat for lib/ts.
Modified:
trafficserver/traffic/trunk/lib/ts/ink_args.cc
trafficserver/traffic/trunk/lib/ts/ink_file.cc
trafficserver/traffic/trunk/lib/ts/ink_inet.cc
trafficserver/traffic/trunk/lib/ts/ink_lockfile.h
trafficserver/traffic/trunk/lib/ts/ink_res_init.cc
trafficserver/traffic/trunk/lib/ts/ink_resource.cc
trafficserver/traffic/trunk/lib/ts/ink_stack_trace.cc
trafficserver/traffic/trunk/lib/ts/ink_time.cc
trafficserver/traffic/trunk/lib/ts/test_strings.cc
Modified: trafficserver/traffic/trunk/lib/ts/ink_args.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/ts/ink_args.cc?rev=1171837&r1=1171836&r2=1171837&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/ts/ink_args.cc (original)
+++ trafficserver/traffic/trunk/lib/ts/ink_args.cc Fri Sep 16 22:38:27 2011
@@ -83,7 +83,7 @@ process_arg(ArgumentDescription * argume
*(int64_t *) argument_descriptions[i].location = ink_atoi64(arg);
break;
case 'S':
- strncpy((char *) argument_descriptions[i].location, arg,
atoi(argument_descriptions[i].type + 1));
+ ink_strlcpy((char *) argument_descriptions[i].location, arg,
atoi(argument_descriptions[i].type + 1));
break;
default:
ink_fatal(1, (char *) "bad argument description");
@@ -158,7 +158,7 @@ process_args(ArgumentDescription * argum
*(int64_t *) argument_descriptions[i].location = atoll(env);
break;
case 'S':
- strncpy((char *) argument_descriptions[i].location, env,
atoi(argument_descriptions[i].type + 1));
+ ink_strlcpy((char *) argument_descriptions[i].location, env,
atoi(argument_descriptions[i].type + 1));
break;
}
}
Modified: trafficserver/traffic/trunk/lib/ts/ink_file.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/ts/ink_file.cc?rev=1171837&r1=1171836&r2=1171837&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/ts/ink_file.cc (original)
+++ trafficserver/traffic/trunk/lib/ts/ink_file.cc Fri Sep 16 22:38:27 2011
@@ -308,12 +308,12 @@ ink_filepath_make(char *path, int pathsz
if (addpath[0] == '/') {
// If addpath is rooted, then rootpath is unused.
- ink_strncpy(path, addpath, pathsz);
+ ink_strlcpy(path, addpath, pathsz);
return 0;
}
if (!rootpath || !*rootpath) {
// If there's no rootpath return the addpath
- ink_strncpy(path, addpath, pathsz);
+ ink_strlcpy(path, addpath, pathsz);
return 0;
}
rootlen = strlen(rootpath);
@@ -322,10 +322,13 @@ ink_filepath_make(char *path, int pathsz
*path = '\0';
return (int)maxlen;
}
- strcpy(path, rootpath);
+ ink_strlcpy(path, rootpath, pathsz);
path += rootlen;
- if (*(path - 1) != '/')
+ pathsz -= rootlen;
+ if (*(path - 1) != '/') {
*(path++) = '/';
- strcpy(path, addpath);
+ --pathsz;
+ }
+ ink_strlcpy(path, addpath, pathsz);
return 0;
}
Modified: trafficserver/traffic/trunk/lib/ts/ink_inet.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/ts/ink_inet.cc?rev=1171837&r1=1171836&r2=1171837&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/ts/ink_inet.cc (original)
+++ trafficserver/traffic/trunk/lib/ts/ink_inet.cc Fri Sep 16 22:38:27 2011
@@ -233,10 +233,9 @@ int ink_inet_pton(char const* text, sock
*/
size_t n = strlen(text);
- copy = static_cast<char*>(alloca(n)); // n-1 would probably be OK.
+ copy = static_cast<char*>(alloca(n-1));
if (']' == text[n-1]) {
- strncpy(copy, text+1, n-2);
- copy[n-2] = 0;
+ ink_strlcpy(copy, text+1, n-1);
text = copy;
} else {
// Bad format, getaddrinfo isn't going to succeed.
Modified: trafficserver/traffic/trunk/lib/ts/ink_lockfile.h
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/ts/ink_lockfile.h?rev=1171837&r1=1171836&r2=1171837&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/ts/ink_lockfile.h (original)
+++ trafficserver/traffic/trunk/lib/ts/ink_lockfile.h Fri Sep 16 22:38:27 2011
@@ -47,7 +47,7 @@ public:
// coverity[uninit_member]
Lockfile(const char *filename):fd(0)
{
- ink_strncpy(fname, filename, sizeof(fname));
+ ink_strlcpy(fname, filename, sizeof(fname));
}
~Lockfile(void)
@@ -56,7 +56,7 @@ public:
void SetLockfileName(const char *filename)
{
- ink_strncpy(fname, filename, sizeof(fname));
+ ink_strlcpy(fname, filename, sizeof(fname));
}
const char *GetLockfileName(void)
Modified: trafficserver/traffic/trunk/lib/ts/ink_res_init.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/ts/ink_res_init.cc?rev=1171837&r1=1171836&r2=1171837&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/ts/ink_res_init.cc (original)
+++ trafficserver/traffic/trunk/lib/ts/ink_res_init.cc Fri Sep 16 22:38:27 2011
@@ -328,17 +328,14 @@ ink_res_init(
buf[0] = '.';
cp = strchr(buf, '.');
cp = (cp == NULL) ? buf : (cp + 1);
- strncpy(statp->defdname, cp,
- sizeof(statp->defdname) - 1);
- statp->defdname[sizeof(statp->defdname) - 1] = '\0';
+ ink_strlcpy(statp->defdname, cp, sizeof(statp->defdname));
}
}
#endif /* SOLARIS2 */
/* Allow user to override the local domain definition */
if ((cp = getenv("LOCALDOMAIN")) != NULL) {
- (void)strncpy(statp->defdname, cp, sizeof(statp->defdname) - 1);
- statp->defdname[sizeof(statp->defdname) - 1] = '\0';
+ (void)ink_strlcpy(statp->defdname, cp, sizeof(statp->defdname));
haveenv++;
/*
@@ -380,12 +377,12 @@ ink_res_init(
---------------------------------------------- */
if (pDefDomain && '\0' != *pDefDomain && '\n' != *pDefDomain) {
- strncpy(statp->defdname, pDefDomain, sizeof(statp->defdname) - 1);
+ ink_strlcpy(statp->defdname, pDefDomain, sizeof(statp->defdname));
if ((cp = strpbrk(statp->defdname, " \t\n")) != NULL)
*cp = '\0';
}
if (pSearchList && '\0' != *pSearchList && '\n' != *pSearchList) {
- strncpy(statp->defdname, pSearchList, sizeof(statp->defdname) - 1);
+ ink_strlcpy(statp->defdname, pSearchList, sizeof(statp->defdname));
if ((cp = strchr(statp->defdname, '\n')) != NULL)
*cp = '\0';
/*
@@ -446,8 +443,7 @@ ink_res_init(
cp++;
if ((*cp == '\0') || (*cp == '\n'))
continue;
- strncpy(statp->defdname, cp, sizeof(statp->defdname) - 1);
- statp->defdname[sizeof(statp->defdname) - 1] = '\0';
+ ink_strlcpy(statp->defdname, cp, sizeof(statp->defdname));
if ((cp = strpbrk(statp->defdname, " \t\n")) != NULL)
*cp = '\0';
havesearch = 0;
@@ -462,8 +458,7 @@ ink_res_init(
cp++;
if ((*cp == '\0') || (*cp == '\n'))
continue;
- strncpy(statp->defdname, cp, sizeof(statp->defdname) - 1);
- statp->defdname[sizeof(statp->defdname) - 1] = '\0';
+ ink_strlcpy(statp->defdname, cp, sizeof(statp->defdname));
if ((cp = strchr(statp->defdname, '\n')) != NULL)
*cp = '\0';
/*
@@ -528,7 +523,7 @@ ink_res_init(
statp->nscount = nserv;
if (statp->defdname[0] == 0 && gethostname(buf, sizeof(statp->defdname) - 1)
== 0 && (cp = strchr(buf, '.')) != NULL)
- strcpy(statp->defdname, cp + 1);
+ ink_strlcpy(statp->defdname, cp + 1, sizeof(statp->defdname));
/* find components of local domain that might be searched */
if (havesearch == 0) {
Modified: trafficserver/traffic/trunk/lib/ts/ink_resource.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/ts/ink_resource.cc?rev=1171837&r1=1171836&r2=1171837&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/ts/ink_resource.cc (original)
+++ trafficserver/traffic/trunk/lib/ts/ink_resource.cc Fri Sep 16 22:38:27 2011
@@ -44,8 +44,7 @@ _xstrdup(const char *str, int length, co
length = strlen(str);
newstr = (char *)ats_malloc(length + 1);
- strncpy(newstr, str, length);
- newstr[length] = '\0';
+ ink_strlcpy(newstr, str, length);
return newstr;
}
return NULL;
Modified: trafficserver/traffic/trunk/lib/ts/ink_stack_trace.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/ts/ink_stack_trace.cc?rev=1171837&r1=1171836&r2=1171837&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/ts/ink_stack_trace.cc (original)
+++ trafficserver/traffic/trunk/lib/ts/ink_stack_trace.cc Fri Sep 16 22:38:27
2011
@@ -103,7 +103,7 @@ ink_stack_trace_dump(int sighandler_fram
// Recopy and re-terminate the app name in case it has been trashed.
char name[256];
const char *msg = " - STACK TRACE: \n";
- ink_strncpy(name, program_name, sizeof(name) - 2);
+ ink_strlcpy(name, program_name, sizeof(name));
if (write(2, name, strlen(name)) == -1)
return;
if (write(2, msg, strlen(msg)) == -1)
Modified: trafficserver/traffic/trunk/lib/ts/ink_time.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/ts/ink_time.cc?rev=1171837&r1=1171836&r2=1171837&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/ts/ink_time.cc (original)
+++ trafficserver/traffic/trunk/lib/ts/ink_time.cc Fri Sep 16 22:38:27 2011
@@ -602,7 +602,7 @@ ink_time_first_day_of_year(int year)
void
ink_time_day_to_string(int day, char *buffer, const size_t bufferSize)
{
- ink_strncpy(buffer, _day_names[day], bufferSize);
+ ink_strlcpy(buffer, _day_names[day], bufferSize);
} /* End ink_time_day_to_string */
@@ -617,7 +617,7 @@ ink_time_day_to_string(int day, char *bu
void
ink_time_month_to_string(int month, char *buffer, const size_t bufferSize)
{
- ink_strncpy(buffer, _month_names[month - 1], bufferSize);
+ ink_strlcpy(buffer, _month_names[month - 1], bufferSize);
} /* End ink_time_month_to_string */
Modified: trafficserver/traffic/trunk/lib/ts/test_strings.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/ts/test_strings.cc?rev=1171837&r1=1171836&r2=1171837&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/ts/test_strings.cc (original)
+++ trafficserver/traffic/trunk/lib/ts/test_strings.cc Fri Sep 16 22:38:27 2011
@@ -23,6 +23,7 @@
/* This program tests the speeds of several of the string functions, both
* from the inktomi library and from the standard library.
+ * TODO : add testing for ink_strlcpy ?
*/
#include <stdio.h>