From 2938c58c82ddbd342e0750c15be2ced12bf98e3c Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Fri, 29 Apr 2011 15:23:33 +0000 Subject: 29107: replace overlapping strcpy with memmove --- ChangeLog | 7 ++++++- 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 + + * 29107: Src/Zle/zle_tricky.c: replace overlapping strcpy with + memmove. + 2011-04-27 Mikael Magnusson * 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) { -- cgit 1.4.1