[前][次][番号順一覧][スレッド一覧]

ruby-changes:19271

From: naruse <ko1@a...>
Date: Wed, 20 Apr 2011 14:43:34 +0900 (JST)
Subject: [ruby-changes:19271] Ruby:r31310 (trunk): * string.c (rb_str_each_line): check string's length when compare

naruse	2011-04-20 14:43:27 +0900 (Wed, 20 Apr 2011)

  New Revision: 31310

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31310

  Log:
    * string.c (rb_str_each_line): check string's length when compare
      separator and string. [ruby-core:35815] fixes #4586

  Modified files:
    trunk/ChangeLog
    trunk/string.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 31309)
+++ ChangeLog	(revision 31310)
@@ -1,3 +1,8 @@
+Wed Apr 20 14:41:28 2011  NARUSE, Yui  <naruse@r...>
+
+	* string.c (rb_str_each_line): check string's length when compare
+	  separator and string. [ruby-core:35815] fixes #4586
+
 Wed Apr 20 00:02:13 2011  Nobuyoshi Nakada  <nobu@r...>
 
 	* misc/ruby-mode.el (ruby-parse-partial): use position of open paren.
Index: string.c
===================================================================
--- string.c	(revision 31309)
+++ string.c	(revision 31310)
@@ -6051,7 +6051,8 @@
 	    p -= n;
 	}
 	if (c == newline &&
-	    (rslen <= 1 || memcmp(RSTRING_PTR(rs), p, rslen) == 0)) {
+	    (rslen <= 1 ||
+	     (pend - p >= rslen && memcmp(RSTRING_PTR(rs), p, rslen) == 0))) {
 	    line = rb_str_new5(str, s, p - s + (rslen ? rslen : n));
 	    OBJ_INFECT(line, str);
 	    rb_enc_cr_str_copy_for_substr(line, str);

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]