diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2011-01-18 10:29:58 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2011-01-18 10:29:58 +0000 |
commit | aa58d139ff3ffa7258a6273bf279d70f9ee31916 (patch) | |
tree | b0835cc3411f8689289c8c6acd868f78c611685a | |
parent | 931a3b6405c28d72ae609703ce63c3e6fdbd8655 (diff) | |
download | zsh-aa58d139ff3ffa7258a6273bf279d70f9ee31916.tar.gz zsh-aa58d139ff3ffa7258a6273bf279d70f9ee31916.tar.xz zsh-aa58d139ff3ffa7258a6273bf279d70f9ee31916.zip |
Mikael: 28637: ${foo:0:} caused crash
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Src/subst.c | 14 | ||||
-rw-r--r-- | Test/D04parameter.ztst | 5 |
3 files changed, 18 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog index aac660046..90eed33df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-01-18 Peter Stephenson <pws@csr.com> + + * Mikael: 28637: Src/subst.c: ${foo:0:} caused crash. + 2011-01-17 Peter Stephenson <pws@csr.com> * Atom Smasher: users/15715: Completion/Zsh/Function/_zargs: new @@ -14143,5 +14147,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.5187 $ +* $Revision: 1.5188 $ ***************************************************** diff --git a/Src/subst.c b/Src/subst.c index 24d515d06..37d63cabe 100644 --- a/Src/subst.c +++ b/Src/subst.c @@ -2814,12 +2814,14 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub) zerr("invalid length: %s", check_offset); return NULL; } - length = mathevali(check_offset); - if (errflag) - return NULL; - if (length < (zlong)0) { - zerr("invalid length: %s", check_offset); - return NULL; + if (check_offset) { + length = mathevali(check_offset); + if (errflag) + return NULL; + if (length < (zlong)0) { + zerr("invalid length: %s", check_offset); + return NULL; + } } } if (horrible_offset_hack) { diff --git a/Test/D04parameter.ztst b/Test/D04parameter.ztst index b708b4bd2..c0ad1d29a 100644 --- a/Test/D04parameter.ztst +++ b/Test/D04parameter.ztst @@ -1405,3 +1405,8 @@ printf "%n" '[0]' 1:Regression test for identifier test ?(eval):1: not an identifier: [0] + + str=rts + print ${str:0:} +1:Regression test for missing length after offset +?(eval):2: unrecognized modifier |