diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-08-09 10:32:37 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-08-09 10:32:37 +0000 |
commit | 86024f70cff6c8029633467fd919f1b8cd9cd36c (patch) | |
tree | ffe692ccb27a0b8150d0ba6b68995c549a362165 | |
parent | 6b330d8fb0b855134b05a38082f1172836b8b567 (diff) |
merge revision(s) 59368: [Backport #13753]
random.c: ensure initialized
* random.c (get_rnd, try_get_rnd): ensure initialized to get rid
of crash in forked processes. [ruby-core:82100] [Bug #13753]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_3@59546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | random.c | 4 | ||||
-rw-r--r-- | test/ruby/test_rand.rb | 4 | ||||
-rw-r--r-- | version.h | 2 |
4 files changed, 12 insertions, 3 deletions
@@ -1,3 +1,8 @@ +Wed Aug 9 19:32:17 2017 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * random.c (get_rnd, try_get_rnd): ensure initialized to get rid + of crash in forked processes. [Bug #13753] + Wed Aug 9 19:30:34 2017 Nobuyoshi Nakada <nobu@ruby-lang.org> * ext/strscan/strscan.c (strscan_aref): fix segfault after @@ -361,7 +361,7 @@ get_rnd(VALUE obj) { rb_random_t *ptr; TypedData_Get_Struct(obj, rb_random_t, &random_data_type, ptr); - return ptr; + return rand_start(ptr); } static rb_random_t * @@ -371,7 +371,7 @@ try_get_rnd(VALUE obj) return rand_start(&default_rand); } if (!rb_typeddata_is_kind_of(obj, &random_data_type)) return NULL; - return DATA_PTR(obj); + return rand_start(DATA_PTR(obj)); } /* :nodoc: */ diff --git a/test/ruby/test_rand.rb b/test/ruby/test_rand.rb index d4258a7f1c..ac1ef5292f 100644 --- a/test/ruby/test_rand.rb +++ b/test/ruby/test_rand.rb @@ -453,6 +453,10 @@ END assert_fork_status(1, bug5661) {stable.rand(4)} r1, r2 = *assert_fork_status(2, bug5661) {stable.rand} assert_equal(r1, r2, bug5661) + + assert_fork_status(1, '[ruby-core:82100] [Bug #13753]') do + Random::DEFAULT.rand(4) + end rescue NotImplementedError end @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.3.5" #define RUBY_RELEASE_DATE "2017-08-09" -#define RUBY_PATCHLEVEL 356 +#define RUBY_PATCHLEVEL 357 #define RUBY_RELEASE_YEAR 2017 #define RUBY_RELEASE_MONTH 8 |