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

ruby-changes:1908

From: ko1@a...
Date: 7 Sep 2007 16:46:53 +0900
Subject: [ruby-changes:1908] shyouhei - Ruby:r13399 (ruby_1_8_6): * array.c (rb_ary_subseq): need integer overflow check.

shyouhei	2007-09-07 16:46:40 +0900 (Fri, 07 Sep 2007)

  New Revision: 13399

  Modified files:
    branches/ruby_1_8_6/ChangeLog
    branches/ruby_1_8_6/array.c
    branches/ruby_1_8_6/version.h

  Log:
    * array.c (rb_ary_subseq): need integer overflow check.
      [ruby-dev:31736]
    * array.c (rb_ary_splice): ditto.  [ruby-dev:31737]
    * array.c (rb_ary_fill): ditto.  [ruby-dev:31738]


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/ChangeLog?r1=13399&r2=13398
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/version.h?r1=13399&r2=13398
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/array.c?r1=13399&r2=13398

Index: ruby_1_8_6/array.c
===================================================================
--- ruby_1_8_6/array.c	(revision 13398)
+++ ruby_1_8_6/array.c	(revision 13399)
@@ -606,7 +606,7 @@
     if (beg > RARRAY(ary)->len) return Qnil;
     if (beg < 0 || len < 0) return Qnil;
 
-    if (beg + len > RARRAY(ary)->len) {
+    if (RARRAY(ary)->len < len || RARRAY(ary)->len < beg + len) {
 	len = RARRAY(ary)->len - beg;
 	if (len < 0)
 	    len = 0;
@@ -961,7 +961,7 @@
 	    rb_raise(rb_eIndexError, "index %ld out of array", beg);
 	}
     }
-    if (beg + len > RARRAY(ary)->len) {
+    if (RARRAY(ary)->len < len || RARRAY(ary)->len < beg + len) {
 	len = RARRAY(ary)->len - beg;
     }
 
Index: ruby_1_8_6/ChangeLog
===================================================================
--- ruby_1_8_6/ChangeLog	(revision 13398)
+++ ruby_1_8_6/ChangeLog	(revision 13399)
@@ -1,8 +1,12 @@
 Fri Sep  7 16:39:23 2007  Yukihiro Matsumoto  <matz@r...>
 
-	* array.c (rb_ary_fill): need integer overflow check.
-	  [ruby-dev:31738]
+	* array.c (rb_ary_subseq): need integer overflow check.
+	  [ruby-dev:31736]
 
+	* array.c (rb_ary_splice): ditto.  [ruby-dev:31737]
+
+	* array.c (rb_ary_fill): ditto.  [ruby-dev:31738]
+
 	* string.c (rb_str_splice): integer overflow for length.
 	  [ruby-dev:31739]
 
Index: ruby_1_8_6/version.h
===================================================================
--- ruby_1_8_6/version.h	(revision 13398)
+++ ruby_1_8_6/version.h	(revision 13399)
@@ -2,7 +2,7 @@
 #define RUBY_RELEASE_DATE "2007-09-07"
 #define RUBY_VERSION_CODE 186
 #define RUBY_RELEASE_CODE 20070907
-#define RUBY_PATCHLEVEL 99
+#define RUBY_PATCHLEVEL 100
 
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 8

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

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