diff --git a/ChangeLog b/ChangeLog index ba5acbc45f..fbe5cd11af 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Nov 28 12:07:04 2004 Kazuo Saito + + * regexec.c, test/ruby/test_regexp.rb: fixed segmentation falut + ([ruby-dev:24887]). + Sun Nov 28 12:05:48 2004 Kazuo Saito * regcomp.c, regint.h: fixed PLATFORM_UNALIGNED_WORD_ACCESS diff --git a/regexec.c b/regexec.c index 594c173a83..07af4fe104 100644 --- a/regexec.c +++ b/regexec.c @@ -3199,7 +3199,7 @@ onig_search(regex_t* reg, UChar* str, UChar* end, } } else if (reg->anchor & ANCHOR_SEMI_END_BUF) { - UChar* pre_end = ONIGENC_STEP_BACK(reg->enc, start, end, 1); + UChar* pre_end = ONIGENC_STEP_BACK(reg->enc, str, end, 1); if (ONIGENC_IS_MBC_NEWLINE(reg->enc, pre_end, end)) { semi_end = pre_end; diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb index 217177375d..889fbb4b2d 100644 --- a/test/ruby/test_regexp.rb +++ b/test/ruby/test_regexp.rb @@ -8,4 +8,8 @@ class TestRegexp < Test::Unit::TestCase def test_ruby_talk_116455 assert_match(/^(\w{2,}).* ([A-Za-z\xa2\xc0-\xff]{2,}?)$/, "Hallo Welt") end + + def test_ruby_dev_24887 + assert_equal("a".gsub(/a\Z/, ""), "") + end end