diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | Src/Zle/zle_tricky.c | 8 |
2 files changed, 10 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index 2f5eb20b3..6230a0193 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-04-29 Barton E. Schaefer <schaefer@zsh.org> + + * 29107: Src/Zle/zle_tricky.c: replace overlapping strcpy with + memmove. + 2011-04-27 Mikael Magnusson <mikachu@gmail.com> * 29051: Completion/Unix/Command/_make: add _make- prefix to @@ -14529,5 +14534,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.5265 $ +* $Revision: 1.5266 $ ***************************************************** diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c index d3e30950d..74da24e6c 100644 --- a/Src/Zle/zle_tricky.c +++ b/Src/Zle/zle_tricky.c @@ -1899,7 +1899,7 @@ get_comp_string(void) *dbeg = '{'; i -= len; boffs -= len; - strcpy(dbeg, dbeg + len); + memmove(dbeg, dbeg + len, 1+strlen(dbeg+len)); dp -= len; } bbeg = lastp = p; @@ -1948,7 +1948,7 @@ get_comp_string(void) *dbeg = '{'; i -= len; boffs -= len; - strcpy(dbeg, dbeg + len); + memmove(dbeg, dbeg + len, 1+strlen(dbeg+len)); dp -= len; } bbeg = NULL; @@ -2013,7 +2013,7 @@ get_comp_string(void) new->qpos = strlen(quotename(predup, NULL)); *dbeg = '{'; boffs -= len; - strcpy(dbeg, dbeg + len); + memmove(dbeg, dbeg + len, 1+strlen(dbeg+len)); } if (brend) { Brinfo bp, prev = NULL; @@ -2026,7 +2026,7 @@ get_comp_string(void) l = bp->qpos; bp->pos = strlen(predup + p + l); bp->qpos = strlen(quotename(predup + p + l, NULL)); - strcpy(predup + p, predup + p + l); + memmove(predup + p, predup + p + l, 1+bp->pos); } } if (hascom) { |