From 765e4e2ea68f4b219df33719009ea83677b5d85d Mon Sep 17 00:00:00 2001 From: normal Date: Sat, 30 Aug 2014 10:30:00 +0000 Subject: [PATCH] symbol.c (rb_sym2id): do not return garbage object The dynamic sym passed to rb_sym2id may be a garbage object (as accounted for by dsymbol_check). This fixes an occasional segfault in "make test-all" for me. No need to backport, this is from the new symbol GC feature. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ symbol.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 5e890687e8..c5d168fc37 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Aug 30 19:22:47 2014 Eric Wong + + * symbol.c (rb_sym2id): do not return garbage object + Sat Aug 30 06:39:48 2014 Aaron Patterson * ext/psych/lib/psych/visitors/yaml_tree.rb: fix NameError dumping and diff --git a/symbol.c b/symbol.c index b3fa55fab9..c3ce50f830 100644 --- a/symbol.c +++ b/symbol.c @@ -759,7 +759,7 @@ rb_sym2id(VALUE sym) } else { if (!SYMBOL_PINNED_P(sym)) { - dsymbol_pindown(sym); + return dsymbol_pindown(sym); } return (ID)sym; }