From dd96561f76f8c3ae7d60f5ace40ce32f4f1d73c8 Mon Sep 17 00:00:00 2001 From: ko1 Date: Mon, 10 Jun 2013 07:12:14 +0000 Subject: [PATCH] * gc.c (wmap_mark): check allocation of `w->obj2wmap'. (no-allocation `w->obj2wmap' will be NULL pointer reference) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ gc.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 28765868d6..461d21fe26 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon Jun 10 16:05:59 2013 Koichi Sasada + + * gc.c (wmap_mark): check allocation of `w->obj2wmap'. + (no-allocation `w->obj2wmap' will be NULL pointer reference) + Mon Jun 10 15:36:00 2013 Nobuyoshi Nakada * eval_error.c (error_print): use checking functions instead of diff --git a/gc.c b/gc.c index aaaff2bf55..2a39022c95 100644 --- a/gc.c +++ b/gc.c @@ -4613,7 +4613,7 @@ static void wmap_mark(void *ptr) { struct weakmap *w = ptr; - st_foreach(w->obj2wmap, wmap_mark_map, (st_data_t)&rb_objspace); + if (w->obj2wmap) st_foreach(w->obj2wmap, wmap_mark_map, (st_data_t)&rb_objspace); rb_gc_mark(w->final); }