зеркало из https://github.com/github/ruby.git
Guard static variable first
* ext/openssl/ossl_asn1.c (Init_ossl_asn1): register the static variable to grab an internal object, before creating the object. otherwise the just-created object could get collected during the global variable list allocation. [Bug #16196]
This commit is contained in:
Родитель
6f522455bf
Коммит
203b7fa1ae
|
@ -1823,8 +1823,8 @@ do{\
|
|||
rb_define_method(cASN1EndOfContent, "initialize", ossl_asn1eoc_initialize, 0);
|
||||
rb_define_method(cASN1EndOfContent, "to_der", ossl_asn1eoc_to_der, 0);
|
||||
|
||||
class_tag_map = rb_hash_new();
|
||||
rb_global_variable(&class_tag_map);
|
||||
class_tag_map = rb_hash_new();
|
||||
rb_hash_aset(class_tag_map, cASN1EndOfContent, INT2NUM(V_ASN1_EOC));
|
||||
rb_hash_aset(class_tag_map, cASN1Boolean, INT2NUM(V_ASN1_BOOLEAN));
|
||||
rb_hash_aset(class_tag_map, cASN1Integer, INT2NUM(V_ASN1_INTEGER));
|
||||
|
|
|
@ -635,6 +635,11 @@ class OpenSSL::TestASN1 < OpenSSL::TestCase
|
|||
assert_equal data, seq.entries
|
||||
end
|
||||
|
||||
def test_gc_stress
|
||||
skip "very time consuming test"
|
||||
assert_ruby_status([{"RUBY_DEBUG"=>"gc_stress"}, "--disable-gems", "-ropenssl", "-eexit"], timeout: 20)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def B(ary)
|
||||
|
|
Загрузка…
Ссылка в новой задаче