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>


Reply via email to