about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--Src/subst.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 17d56a742..a53321e51 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-12-15  Barton E. Schaefer  <schaefer@zsh.org>
+
+	* 33976: Src/subst.c: fix overlapping strcpy()
+
 2014-12-14  Mikael Magnusson  <mikachu@gmail.com>
 
 	* users/19530: Completion/Unix/Type/_file_systems: Handle
diff --git a/Src/subst.c b/Src/subst.c
index 43932c256..4100803e7 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -298,7 +298,7 @@ stringsubst(LinkList list, LinkNode node, int pf_flags, int asssub)
 	    if (endchar == Outpar)
 		str2--;
 	    if (!(s = (char *) ugetnode(pl))) {
-		str = strcpy(str2, str);
+		str = (char *)memmove(str2, str, strlen(str)+1);
 		continue;
 	    }
 	    if (!qt && (pf_flags & PREFORK_SINGLE) && isset(GLOBSUBST))