rpms/ruby/devel ruby-1.8.6.230-p238.patch, NONE, 1.1 ruby-1.8.6.230-p248.patch, NONE, 1.1 ruby.spec, 1.118, 1.119

Akira TAGOH (tagoh) fedora-extras-commits at redhat.com
Mon Jun 30 02:38:33 UTC 2008


Author: tagoh

Update of /cvs/pkgs/rpms/ruby/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv21292

Modified Files:
	ruby.spec 
Added Files:
	ruby-1.8.6.230-p238.patch ruby-1.8.6.230-p248.patch 
Log Message:
* Mon Jun 30 2008 Akira TAGOH <tagoh at redhat.com> - 1.8.6.230-3
- Backported from upstream SVN to fix a segfault issue. (#452825)
- Backported from upstream SVN to fix an integer overflow in rb_ary_fill.

ruby-1.8.6.230-p238.patch:

--- NEW FILE ruby-1.8.6.230-p238.patch ---
diff -pruN ruby-1.8.6-p230.orig/class.c ruby-1.8.6-p230/class.c
--- ruby-1.8.6-p230.orig/class.c	2008-06-15 21:06:33.000000000 +0900
+++ ruby-1.8.6-p230/class.c	2008-06-30 11:21:41.000000000 +0900
@@ -62,10 +62,7 @@ clone_method(mid, body, data)
     NODE *fbody = body->nd_body;
 
     if (fbody && nd_type(fbody) == NODE_SCOPE) {
-	VALUE cref = data->klass ?
-	    (VALUE)NEW_NODE(NODE_CREF,data->klass,0,fbody->nd_rval) :
-	    fbody->nd_rval;
-	fbody = NEW_NODE(NODE_SCOPE, fbody->nd_tbl, cref, fbody->nd_next);
+	fbody = rb_copy_node_scope(fbody, ruby_cref);
     }
     st_insert(data->tbl, mid, (st_data_t)NEW_METHOD(fbody, body->nd_noex));
     return ST_CONTINUE;
diff -pruN ruby-1.8.6-p230.orig/eval.c ruby-1.8.6-p230/eval.c
--- ruby-1.8.6-p230.orig/eval.c	2008-06-16 15:43:48.000000000 +0900
+++ ruby-1.8.6-p230/eval.c	2008-06-30 11:19:15.000000000 +0900
@@ -2239,8 +2239,8 @@ rb_mod_alias_method(mod, newname, oldnam
     return mod;
 }
 
-static NODE*
-copy_node_scope(node, rval)
+NODE*
+rb_copy_node_scope(node, rval)
     NODE *node;
     NODE *rval;
 {
@@ -3948,7 +3948,7 @@ rb_eval(self, n)
 		noex |= NOEX_NOSUPER;
 	    }
 
-	    defn = copy_node_scope(node->nd_defn, ruby_cref);
+	    defn = rb_copy_node_scope(node->nd_defn, ruby_cref);
 	    rb_add_method(ruby_class, node->nd_mid, defn, noex);
 	    if (scope_vmode == SCOPE_MODFUNC) {
 		rb_add_method(rb_singleton_class(ruby_class),
@@ -3984,7 +3984,7 @@ rb_eval(self, n)
 		    rb_warning("redefine %s", rb_id2name(node->nd_mid));
 		}
 	    }
-	    defn = copy_node_scope(node->nd_defn, ruby_cref);
+	    defn = rb_copy_node_scope(node->nd_defn, ruby_cref);
 	    rb_add_method(klass, node->nd_mid, defn,
 			  NOEX_PUBLIC|(body?body->nd_noex&NOEX_UNDEF:0));
 	    result = Qnil;
diff -pruN ruby-1.8.6-p230.orig/node.h ruby-1.8.6-p230/node.h
--- ruby-1.8.6-p230.orig/node.h	2007-05-23 00:01:22.000000000 +0900
+++ ruby-1.8.6-p230/node.h	2008-06-30 11:20:06.000000000 +0900
@@ -371,6 +371,7 @@ typedef unsigned int rb_event_t;
 #define RUBY_EVENT_ALL      0xff
 
 typedef void (*rb_event_hook_func_t) _((rb_event_t,NODE*,VALUE,ID,VALUE));
+NODE *rb_copy_node_scope _((NODE *, NODE *));
 void rb_add_event_hook _((rb_event_hook_func_t,rb_event_t));
 int rb_remove_event_hook _((rb_event_hook_func_t));
 

ruby-1.8.6.230-p248.patch:

--- NEW FILE ruby-1.8.6.230-p248.patch ---
diff -pruN ruby-1.8.6-p230.orig/array.c ruby-1.8.6-p230/array.c
--- ruby-1.8.6-p230.orig/array.c	2008-06-20 15:53:16.000000000 +0900
+++ ruby-1.8.6-p230/array.c	2008-06-30 11:33:00.000000000 +0900
@@ -2272,10 +2272,10 @@ rb_ary_fill(argc, argv, ary)
 	break;
     }
     rb_ary_modify(ary);
-    end = beg + len;
-    if (end < 0) {
+    if (len > ARY_MAX_SIZE - beg) {
 	rb_raise(rb_eArgError, "argument too big");
     }
+    end = beg + len;
     if (end > RARRAY(ary)->len) {
 	if (end >= RARRAY(ary)->aux.capa) {
 	    REALLOC_N(RARRAY(ary)->ptr, VALUE, end);


Index: ruby.spec
===================================================================
RCS file: /cvs/pkgs/rpms/ruby/devel/ruby.spec,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -r1.118 -r1.119
--- ruby.spec	25 Jun 2008 08:32:24 -0000	1.118
+++ ruby.spec	30 Jun 2008 02:37:44 -0000	1.119
@@ -12,7 +12,7 @@
 
 Name:		ruby
 Version:	%{rubyver}%{?dotpatchlevel}
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	Ruby or GPLv2
 URL:		http://www.ruby-lang.org/
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -35,6 +35,8 @@
 Patch23:	ruby-multilib.patch
 Patch25:	ruby-1.8.6.111-gcc43.patch
 Patch26:	ruby-1.8.6.230-string-str_buf_cat.patch
+Patch27:	ruby-1.8.6.230-p238.patch
+Patch28:	ruby-1.8.6.230-p248.patch
 
 Summary:	An interpreter of object-oriented scripting language
 Group:		Development/Languages
@@ -154,6 +156,8 @@
 %endif
 %patch25 -p1
 %patch26 -p1
+%patch27 -p1
+%patch28 -p1
 popd
 
 %build
@@ -504,6 +508,10 @@
 %{_datadir}/emacs/site-lisp/site-start.d/ruby-mode-init.el
 
 %changelog
+* Mon Jun 30 2008 Akira TAGOH <tagoh at redhat.com> - 1.8.6.230-3
+- Backported from upstream SVN to fix a segfault issue. (#452825)
+- Backported from upstream SVN to fix an integer overflow in rb_ary_fill.
+
 * Wed Jun 25 2008 Akira TAGOH <tagoh at redhat.com> - 1.8.6.230-2
 - Fix a segfault issue. (#452810)
 




More information about the fedora-extras-commits mailing list