fixing an use of strcpy() where both strings overlap pointed out by
* uri.c: fixing an use of strcpy() where both strings overlap
pointed out by valgrind.
Daniel
diff --git a/uri.c b/uri.c
index 6b0aa27..13c875b 100644
--- a/uri.c
+++ b/uri.c
@@ -691,7 +691,7 @@
* "current position" pointer.
*/
while (1) {
- char *segp;
+ char *segp, *tmp;
/* At the beginning of each iteration of this loop, "cur" points to
* the first character of the segment we want to examine.
@@ -731,7 +731,11 @@
cur[0] = '\0';
break;
}
- strcpy(cur, segp + 3);
+ /* Valgrind complained, strcpy(cur, segp + 3); */
+ /* string will overlap, do not use strcpy */
+ tmp = cur;
+ segp += 3;
+ while ((*tmp++ = *segp++) != 0);
/* If there are no previous segments, then keep going from here. */
segp = cur;