summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWayne Davison <wayned@users.sourceforge.net>2001-05-20 09:20:46 +0000
committerWayne Davison <wayned@users.sourceforge.net>2001-05-20 09:20:46 +0000
commit792135ba0bcbeed157fffd425a1ae0a0c1a8b7be (patch)
tree65d05442f7c2ed9b52463b1c632bc29241cddf91
parent6ea2dab092feb373c13a4dda85bc0d399978975a (diff)
downloadzsh-792135ba0bcbeed157fffd425a1ae0a0c1a8b7be.tar.gz
zsh-792135ba0bcbeed157fffd425a1ae0a0c1a8b7be.zip
Added some array-assignment boundary checks.
-rw-r--r--Src/params.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/Src/params.c b/Src/params.c
index 63e1dc75c..6c07396b2 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -1727,8 +1727,13 @@ setarrvalue(Value v, char **val)
v->pm->nam, 0);
return;
}
- if (v->inv && unset(KSHARRAYS))
- v->start--, v->end--;
+ if (v->inv && unset(KSHARRAYS)) {
+ if (v->start > 0)
+ v->start--;
+ v->end--;
+ }
+ if (v->end < v->start)
+ v->end = v->start;
q = old = v->pm->gets.afn(v->pm);
n = arrlen(old);
if (v->start < 0) {