aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--gc.c2
2 files changed, 6 insertions, 1 deletions
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 <ko1@atdot.net>
+
+ * 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 <nobu@ruby-lang.org>
* 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);
}