diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/utils.c | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index b61f903bb..324da711c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2011-12-03 Peter Stephenson <p.w.stephenson@ntlworld.com> + * 29940: Src/utils.c (metafy): null termination shouldn't + be applied to original buffer if not to be modified. + * From Stef VAN VLIERBERGHE: 29934: Src/lex.c (add): use of uninitialised memoryx when lexer needed to reallocate token. @@ -15650,5 +15653,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.5514 $ +* $Revision: 1.5515 $ ***************************************************** diff --git a/Src/utils.c b/Src/utils.c index 6c2ea98d5..014cb2fa2 100644 --- a/Src/utils.c +++ b/Src/utils.c @@ -3959,7 +3959,7 @@ metafy(char *buf, int len, int heap) if (imeta(*e++)) meta++; - if (meta || heap == META_DUP || heap == META_HEAPDUP) { + if (meta || heap == META_DUP || heap == META_HEAPDUP || *e != '\0') { switch (heap) { case META_REALLOC: buf = zrealloc(buf, len + meta + 1); @@ -4002,8 +4002,8 @@ metafy(char *buf, int len, int heap) meta--; } } + *e = '\0'; } - *e = '\0'; return buf; } |