diff --git a/ChangeLog b/ChangeLog index 678d4a2bd1..e140a2c5c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Fri Oct 25 02:55:01 2002 Minero Aoki + + * string.c (rb_str_split_m): RSTRING(str)->ptr might become NULL. + Thu Oct 24 21:57:02 2002 Nobuyoshi Nakada * configure.in (LIBPATHFLAG): avoid $ substitution. diff --git a/string.c b/string.c index 57e0cad81a..3f1445fb5e 100644 --- a/string.c +++ b/string.c @@ -2533,7 +2533,11 @@ rb_str_split_m(argc, argv, str) while ((end = rb_reg_search(spat, str, start, 0)) >= 0) { regs = RMATCH(rb_backref_get())->regs; if (start == end && BEG(0) == END(0)) { - if (last_null == 1) { + if (!RSTRING(str)->ptr) { + rb_ary_push(result, rb_str_new("", 0)); + break; + } + else if (last_null == 1) { rb_ary_push(result, rb_str_substr(str, beg, mbclen2(RSTRING(str)->ptr[beg],spat))); beg = start; }