summaryrefslogtreecommitdiff
path: root/range.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-04-09 18:04:08 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-04-09 18:04:08 +0000
commit32e799db485107ba9d47fb4fb4cd44c9d6f57b8a (patch)
treee33fd45f76d7f31959c1e5298902588de716657c /range.c
parent35247a52ef719584a59ae9c518523f0ee825c8e3 (diff)
*** empty log message ***
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_3@414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'range.c')
-rw-r--r--range.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/range.c b/range.c
index 74bbdcdceb..7f0e0c581f 100644
--- a/range.c
+++ b/range.c
@@ -191,7 +191,11 @@ rb_range_beg_len(range, begp, lenp, len, err)
beg += len;
if (beg < 0) goto out_of_range;
}
- if (err == 2 && beg > len) goto out_of_range;
+ if (err == 2) {
+ if (beg > len) goto out_of_range;
+ if (end > len || (!EXCL(range) && end == len))
+ goto out_of_range;
+ }
if (end < 0) {
end += len;
if (end < 0) {