* don't use strlen and strcpy over here too in a wrong way.
authorWilfried Göesgens <willi@citadel.org>
Wed, 4 Jul 2007 21:57:41 +0000 (21:57 +0000)
committerWilfried Göesgens <willi@citadel.org>
Wed, 4 Jul 2007 21:57:41 +0000 (21:57 +0000)
webcit/tools.c

index bf3578122c6a0aed316a019e4fc6e116904689f4..7964064f4a8c495e54152db9afc5344aa3bbc81e 100644 (file)
@@ -106,7 +106,7 @@ void extract_token(char *dest, const char *source, int parmnum, char separator,
 void remove_token(char *source, int parmnum, char separator)
 {
        int i;
-       int len;
+       int len, slen;
        int curr_parm;
        int start, end;
 
@@ -115,11 +115,12 @@ void remove_token(char *source, int parmnum, char separator)
        start = (-1);
        end = (-1);
 
-       if (strlen(source) == 0) {
+       slen = strlen(source);
+       if (slen == 0) {
                return;
        }
 
-       for (i = 0; i < strlen(source); ++i) {
+       for (i = 0; i < slen; ++i) {
                if ((start < 0) && (curr_parm == parmnum)) {
                        start = i;
                }
@@ -136,7 +137,7 @@ void remove_token(char *source, int parmnum, char separator)
        if (end < 0)
                end = strlen(source);
 
-       strcpy(&source[start], &source[end]);
+       memmove(&source[start], &source[end], slen - end);
 }