about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2018-10-11 14:27:15 -0400
committerRich Felker <dalias@aerifal.cx>2018-10-11 14:27:15 -0400
commit09a805a62307307230a31125425d0c2b0b6f332e (patch)
tree7d5d333ca32f863be3cff411957b07578efa3ac7
parente2552581bc004f7dc5ee9ac220cad8abeae19bba (diff)
downloadmusl-09a805a62307307230a31125425d0c2b0b6f332e.tar.gz
musl-09a805a62307307230a31125425d0c2b0b6f332e.tar.xz
musl-09a805a62307307230a31125425d0c2b0b6f332e.zip
fix redundant computations of strlen in glob append function
len was already passed as an argument, so don't use strcat, and use
memcpy instead of strcpy.
-rw-r--r--src/regex/glob.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/regex/glob.c b/src/regex/glob.c
index 98636295..3e1b034e 100644
--- a/src/regex/glob.c
+++ b/src/regex/glob.c
@@ -41,8 +41,11 @@ static int append(struct match **tail, const char *name, size_t len, int mark)
 	if (!new) return -1;
 	(*tail)->next = new;
 	new->next = NULL;
-	strcpy(new->name, name);
-	if (mark) strcat(new->name, "/");
+	memcpy(new->name, name, len+1);
+	if (mark) {
+		new->name[len] = '/';
+		new->name[len+1] = 0;
+	}
 	*tail = new;
 	return 0;
 }