summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--string.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 26772b607..12b6527e2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Jan 9 03:54:38 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * string.c (rb_str_upto): String#upto from empty string makes
+ inifinite loop. [ruby-core:09864]
+
Sun Jan 7 18:36:05 2007 Koichi Sasada <ko1@atdot.net>
* thread.c (rb_thread_stop_timer_thread(), rb_thread_reset_timer_thread(),
diff --git a/string.c b/string.c
index 455ac4428..49eddf614 100644
--- a/string.c
+++ b/string.c
@@ -1568,7 +1568,7 @@ rb_str_upto(VALUE beg, VALUE end, int excl)
StringValue(current);
if (excl && rb_str_equal(current, end)) break;
StringValue(current);
- if (RSTRING_LEN(current) > RSTRING_LEN(end))
+ if (RSTRING_LEN(current) > RSTRING_LEN(end) || RSTRING(current)->len == 0)
break;
}