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

ruby-changes:36918

From: ngoto <ko1@a...>
Date: Thu, 25 Dec 2014 17:33:48 +0900 (JST)
Subject: [ruby-changes:36918] ngoto:r48999 (trunk): * gc.c (wmap_final_func): fix memory size shortage when realloc wmap.

ngoto	2014-12-25 17:33:41 +0900 (Thu, 25 Dec 2014)

  New Revision: 48999

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

  Log:
    * gc.c (wmap_final_func): fix memory size shortage when realloc wmap.
      Fix SEGV during finilize of WeakRef on Solaris (though the SEGV
      could occur on all OS/platforms). [ruby-dev:48779] [Bug #10646]

  Modified files:
    trunk/ChangeLog
    trunk/gc.c
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 48998)
+++ ChangeLog	(revision 48999)
@@ -1,3 +1,9 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Thu Dec 25 17:30:40 2014  Naohisa Goto  <ngotogenome@g...>
+
+	* gc.c (wmap_final_func): fix memory size shortage when realloc wmap.
+	  Fix SEGV during finilize of WeakRef on Solaris (though the SEGV
+	  could occur on all OS/platforms). [ruby-dev:48779] [Bug #10646]
+
 Thu Dec 25 17:27:06 2014  Nobuyoshi Nakada  <nobu@r...>
 
 	* configure.in (NET_LUID): include winsock2.h instead of windows.h.
Index: gc.c
===================================================================
--- gc.c	(revision 48998)
+++ gc.c	(revision 48999)
@@ -7672,7 +7672,7 @@ wmap_final_func(st_data_t *key, st_data_ https://github.com/ruby/ruby/blob/trunk/gc.c#L7672
 	return ST_DELETE;
     }
     if (j < i) {
-	ptr = ruby_sized_xrealloc2(ptr, j, sizeof(VALUE), i);
+	ptr = ruby_sized_xrealloc2(ptr, j + 1, sizeof(VALUE), i);
 	ptr[0] = j;
 	*value = (st_data_t)ptr;
     }

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

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