From: "postmodern (Hal Brodigan) via ruby-core" Date: 2023-08-02T23:25:28+00:00 Subject: [ruby-core:114338] [Ruby master Bug#19828] Segfault when `OpenSSL::X509::Certificate#public_key=` is given a `OpenSS::PKey::DH` object Issue #19828 has been reported by postmodern (Hal Brodigan). ---------------------------------------- Bug #19828: Segfault when `OpenSSL::X509::Certificate#public_key=` is given a `OpenSS::PKey::DH` object https://bugs.ruby-lang.org/issues/19828 * Author: postmodern (Hal Brodigan) * Status: Open * Priority: Normal * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- The OpenSSL bindings cause a SegFault when creating a new OpenSSL::X509::Certificate object and setting it's `public_key` to the `public_key` of a new `OpenSSL::PKey::DH` key-pair. ### Steps To Reproduce ```ruby #!/usr/bin/env ruby require 'openssl' cert = OpenSSL::X509::Certificate.new key = OpenSSL::PKey::DH.generate(1024) cert.public_key = key.public_key ``` ### Expected Results Sets the public key. ### Actual Results ``` test.rb:8: [BUG] Segmentation fault at 0x0000000000000010 ruby 3.3.0dev (2023-08-02T18:35:08Z master 32e828bb4a) [x86_64-linux] -- Control frame information ----------------------------------------------- c:0003 p:---- s:0014 e:000013 CFUNC :public_key= c:0002 p:0031 s:0009 E:001850 EVAL test.rb:8 [FINISH] c:0001 p:0000 s:0003 E:002540 DUMMY [FINISH] -- Ruby level backtrace information ---------------------------------------- test.rb:8:in `
' test.rb:8:in `public_key=' -- Threading information --------------------------------------------------- Total ractor count: 1 Ruby thread count for this ractor: 1 -- Machine register context ------------------------------------------------ RIP: 0x00007fb3144e4c24 RBP: 0x00007ffd6dbb6bb0 RSP: 0x00007ffd6dbb6b88 RAX: 0x00005599fe68ed00 RBX: 0x00005599fe68ec40 RCX: 0x00005599fe68ed00 RDX: 0x0000000000000018 RDI: 0x0000000000000000 RSI: 0x0000000000000000 R8: 0x00005599fe68ed10 R9: 0x00007fb324a59ce0 R10: 0x0000000000000040 R11: 0x0000000000000000 R12: 0x0000000000000000 R13: 0x00005599fe68ed00 R14: 0x0000000000000000 R15: 0x0000000000000001 EFL: 0x0000000000010206 -- C level backtrace information ------------------------------------------- /home/postmodern/.rubies/ruby-trunk/bin/ruby(rb_vm_bugreport+0x5c7) [0x5599fce806a7] /home/postmodern/src/ruby/vm_dump.c:772 /home/postmodern/.rubies/ruby-trunk/bin/ruby(rb_bug_for_fatal_signal+0xe8) [0x5599fcf2a4b8] /home/postmodern/src/ruby/error.c:820 /home/postmodern/.rubies/ruby-trunk/bin/ruby(sigsegv+0x4b) [0x5599fcdcdccb] /home/postmodern/src/ruby/signal.c:920 /lib64/libc.so.6(__restore_rt+0x0) [0x7fb3248c2b70] /lib64/libcrypto.so.3(BN_is_negative+0x4) [0x7fb3144e4c24] /lib64/libcrypto.so.3(0x7fb3144b8d08) [0x7fb3144b8d08] /lib64/libcrypto.so.3(0x7fb31452514a) [0x7fb31452514a] /lib64/libcrypto.so.3(X509_PUBKEY_set+0x6f) [0x7fb31464134f] /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/openssl.so(ossl_x509_set_public_key+0x39) [0x7fb314ac1a29] /home/postmodern/src/ruby/ext/openssl/ossl_x509cert.c:525 /home/postmodern/.rubies/ruby-trunk/bin/ruby(vm_call_cfunc_other+0x169) [0x5599fce558b9] /home/postmodern/src/ruby/vm_insnhelper.c:3462 /home/postmodern/.rubies/ruby-trunk/bin/ruby(vm_exec_core+0x117) [0x5599fce72a37] /home/postmodern/src/ruby/vm_insnhelper.c:5534 /home/postmodern/.rubies/ruby-trunk/bin/ruby(rb_vm_exec+0x344) [0x5599fce636c4] /home/postmodern/src/ruby/vm.c:2390 /home/postmodern/.rubies/ruby-trunk/bin/ruby(rb_ec_exec_node+0xa5) [0x5599fcc77785] /home/postmodern/src/ruby/eval.c:287 /home/postmodern/.rubies/ruby-trunk/bin/ruby(ruby_run_node+0x8b) [0x5599fcc7ca5b] /home/postmodern/src/ruby/eval.c:328 /home/postmodern/.rubies/ruby-trunk/bin/ruby(main+0x62) [0x5599fcc77242] ./main.c:39 -- Other runtime information ----------------------------------------------- * Loaded script: test.rb * Loaded features: 0 enumerator.so 1 thread.rb 2 fiber.so 3 rational.so 4 complex.so 5 ruby2_keywords.rb 6 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/enc/encdb.so 7 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/enc/trans/transdb.so 8 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/rbconfig.rb 9 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/compatibility.rb 10 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/defaults.rb 11 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/deprecate.rb 12 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/errors.rb 13 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/unknown_command_spell_checker.rb 14 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/exceptions.rb 15 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/basic_specification.rb 16 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/stub_specification.rb 17 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/platform.rb 18 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/util/list.rb 19 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/version.rb 20 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/requirement.rb 21 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/specification.rb 22 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/util.rb 23 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/dependency.rb 24 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/core_ext/kernel_gem.rb 25 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/monitor.so 26 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/monitor.rb 27 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems.rb 28 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/bundled_gems.rb 29 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/rubygems/path_support.rb 30 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/error_highlight/version.rb 31 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/error_highlight/base.rb 32 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/error_highlight/formatter.rb 33 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/error_highlight/core_ext.rb 34 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/error_highlight.rb 35 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/version.rb 36 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/core_ext/name_error.rb 37 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/levenshtein.rb 38 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/jaro_winkler.rb 39 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/spell_checker.rb 40 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb 41 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb 42 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/spell_checkers/name_error_checkers.rb 43 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/spell_checkers/method_name_checker.rb 44 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/spell_checkers/key_error_checker.rb 45 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/spell_checkers/null_checker.rb 46 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/tree_spell_checker.rb 47 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/spell_checkers/require_path_checker.rb 48 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/spell_checkers/pattern_key_name_checker.rb 49 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean/formatter.rb 50 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/did_you_mean.rb 51 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/syntax_suggest/core_ext.rb 52 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/digest/version.rb 53 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/digest.so 54 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/digest/loader.rb 55 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/digest.rb 56 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/openssl.so 57 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/openssl/bn.rb 58 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/openssl/marshal.rb 59 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/openssl/pkey.rb 60 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/openssl/cipher.rb 61 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/openssl/digest.rb 62 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/openssl/hmac.rb 63 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/openssl/x509.rb 64 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/openssl/buffering.rb 65 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/io/nonblock.so 66 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/socket.so 67 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/socket.rb 68 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/ipaddr.rb 69 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/openssl/ssl.rb 70 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/openssl/pkcs5.rb 71 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/openssl/version.rb 72 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/openssl.rb * Process memory map: 5599fcc41000-5599fcc72000 r--p 00000000 00:23 554309 /home/postmodern/.rubies/ruby-trunk/bin/ruby 5599fcc72000-5599fcf6f000 r-xp 00031000 00:23 554309 /home/postmodern/.rubies/ruby-trunk/bin/ruby 5599fcf6f000-5599fd0b4000 r--p 0032e000 00:23 554309 /home/postmodern/.rubies/ruby-trunk/bin/ruby 5599fd0b4000-5599fd0bf000 r--p 00473000 00:23 554309 /home/postmodern/.rubies/ruby-trunk/bin/ruby 5599fd0bf000-5599fd0c5000 rw-p 0047e000 00:23 554309 /home/postmodern/.rubies/ruby-trunk/bin/ruby 5599fd0c5000-5599fd0d9000 rw-p 00000000 00:00 0 5599fe223000-5599fe6bd000 rw-p 00000000 00:00 0 [heap] 7fb30da00000-7fb30de3d000 r--s 00000000 00:23 1740382 /usr/lib64/libcrypto.so.3.0.9 7fb30e000000-7fb30e222000 r--s 00000000 00:23 157485 /usr/lib64/libc.so.6 7fb30e400000-7fb30ffdf000 r--s 00000000 00:23 554309 /home/postmodern/.rubies/ruby-trunk/bin/ruby 7fb310000000-7fb310021000 rw-p 00000000 00:00 0 7fb310021000-7fb314000000 ---p 00000000 00:00 0 7fb3141ff000-7fb314200000 ---p 00000000 00:00 0 7fb314200000-7fb314400000 rw-p 00000000 00:00 0 7fb314400000-7fb3144ad000 r--p 00000000 00:23 1740382 /usr/lib64/libcrypto.so.3.0.9 7fb3144ad000-7fb314711000 r-xp 000ad000 00:23 1740382 /usr/lib64/libcrypto.so.3.0.9 7fb314711000-7fb3147ca000 r--p 00311000 00:23 1740382 /usr/lib64/libcrypto.so.3.0.9 7fb3147ca000-7fb314821000 r--p 003ca000 00:23 1740382 /usr/lib64/libcrypto.so.3.0.9 7fb314821000-7fb314824000 rw-p 00421000 00:23 1740382 /usr/lib64/libcrypto.so.3.0.9 7fb314824000-7fb314827000 rw-p 00000000 00:00 0 7fb314958000-7fb31495b000 r--p 00000000 00:23 1753127 /usr/lib64/libgcc_s-13-20230728.so.1 7fb31495b000-7fb314976000 r-xp 00003000 00:23 1753127 /usr/lib64/libgcc_s-13-20230728.so.1 7fb314976000-7fb31497a000 r--p 0001e000 00:23 1753127 /usr/lib64/libgcc_s-13-20230728.so.1 7fb31497a000-7fb31497b000 r--p 00021000 00:23 1753127 /usr/lib64/libgcc_s-13-20230728.so.1 7fb31497b000-7fb31497c000 rw-p 00000000 00:00 0 7fb314990000-7fb3149a0000 rw-p 00000000 00:00 0 7fb3149a1000-7fb3149a7000 r--p 00000000 00:23 554354 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/socket.so 7fb3149a7000-7fb3149c6000 r-xp 00006000 00:23 554354 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/socket.so 7fb3149c6000-7fb3149ce000 r--p 00025000 00:23 554354 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/socket.so 7fb3149ce000-7fb3149cf000 r--p 0002c000 00:23 554354 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/socket.so 7fb3149cf000-7fb3149d0000 rw-p 0002d000 00:23 554354 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/socket.so 7fb3149d0000-7fb3149e0000 rw-p 00000000 00:00 0 7fb3149e0000-7fb3149fe000 r--p 00000000 00:23 1740384 /usr/lib64/libssl.so.3.0.9 7fb3149fe000-7fb314a5b000 r-xp 0001e000 00:23 1740384 /usr/lib64/libssl.so.3.0.9 7fb314a5b000-7fb314a75000 r--p 0007b000 00:23 1740384 /usr/lib64/libssl.so.3.0.9 7fb314a75000-7fb314a7f000 r--p 00094000 00:23 1740384 /usr/lib64/libssl.so.3.0.9 7fb314a7f000-7fb314a83000 rw-p 0009e000 00:23 1740384 /usr/lib64/libssl.so.3.0.9 7fb314a83000-7fb314a98000 r--p 00000000 00:23 554347 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/openssl.so 7fb314a98000-7fb314ac9000 r-xp 00015000 00:23 554347 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/openssl.so 7fb314ac9000-7fb314adb000 r--p 00046000 00:23 554347 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/openssl.so 7fb314adb000-7fb314add000 r--p 00058000 00:23 554347 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/openssl.so 7fb314add000-7fb314adf000 rw-p 0005a000 00:23 554347 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/openssl.so 7fb314adf000-7fb314b80000 rw-p 00000000 00:00 0 7fb314b90000-7fb314c60000 rw-p 00000000 00:00 0 7fb314c60000-7fb314c61000 ---p 00000000 00:00 0 7fb314c61000-7fb314d02000 rw-p 00000000 00:00 0 7fb314d02000-7fb314d03000 ---p 00000000 00:00 0 7fb314d03000-7fb314da4000 rw-p 00000000 00:00 0 7fb314da4000-7fb314da5000 ---p 00000000 00:00 0 7fb314da5000-7fb314e46000 rw-p 00000000 00:00 0 7fb314e46000-7fb314e47000 ---p 00000000 00:00 0 7fb314e47000-7fb314ee8000 rw-p 00000000 00:00 0 7fb314ee8000-7fb314ee9000 ---p 00000000 00:00 0 7fb314ee9000-7fb314f8a000 rw-p 00000000 00:00 0 7fb314f8a000-7fb314f8b000 ---p 00000000 00:00 0 7fb314f8b000-7fb31502c000 rw-p 00000000 00:00 0 7fb31502c000-7fb31502d000 ---p 00000000 00:00 0 7fb31502d000-7fb3150ce000 rw-p 00000000 00:00 0 7fb3150ce000-7fb3150cf000 ---p 00000000 00:00 0 7fb3150cf000-7fb315170000 rw-p 00000000 00:00 0 7fb315170000-7fb315171000 ---p 00000000 00:00 0 7fb315171000-7fb315212000 rw-p 00000000 00:00 0 7fb315212000-7fb315213000 ---p 00000000 00:00 0 7fb315213000-7fb3152b4000 rw-p 00000000 00:00 0 7fb3152b4000-7fb3152b5000 ---p 00000000 00:00 0 7fb3152b5000-7fb315356000 rw-p 00000000 00:00 0 7fb315356000-7fb315357000 ---p 00000000 00:00 0 7fb315357000-7fb3153f8000 rw-p 00000000 00:00 0 7fb3153f8000-7fb3153f9000 ---p 00000000 00:00 0 7fb3153f9000-7fb31549a000 rw-p 00000000 00:00 0 7fb31549a000-7fb31549b000 ---p 00000000 00:00 0 7fb31549b000-7fb31553c000 rw-p 00000000 00:00 0 7fb31553c000-7fb31553d000 ---p 00000000 00:00 0 7fb31553d000-7fb3155de000 rw-p 00000000 00:00 0 7fb3155de000-7fb3155df000 ---p 00000000 00:00 0 7fb3155df000-7fb315680000 rw-p 00000000 00:00 0 7fb315680000-7fb315681000 ---p 00000000 00:00 0 7fb315681000-7fb315722000 rw-p 00000000 00:00 0 7fb315722000-7fb315723000 ---p 00000000 00:00 0 7fb315723000-7fb3157c4000 rw-p 00000000 00:00 0 7fb3157c4000-7fb3157c5000 ---p 00000000 00:00 0 7fb3157c5000-7fb315866000 rw-p 00000000 00:00 0 7fb315866000-7fb315867000 ---p 00000000 00:00 0 7fb315867000-7fb315908000 rw-p 00000000 00:00 0 7fb315908000-7fb315909000 ---p 00000000 00:00 0 7fb315909000-7fb3159aa000 rw-p 00000000 00:00 0 7fb3159aa000-7fb3159ab000 ---p 00000000 00:00 0 7fb3159ab000-7fb315a4c000 rw-p 00000000 00:00 0 7fb315a4c000-7fb315a4d000 ---p 00000000 00:00 0 7fb315a4d000-7fb315aee000 rw-p 00000000 00:00 0 7fb315aee000-7fb315aef000 ---p 00000000 00:00 0 7fb315aef000-7fb315b90000 rw-p 00000000 00:00 0 7fb315b90000-7fb315b91000 ---p 00000000 00:00 0 7fb315b91000-7fb315c32000 rw-p 00000000 00:00 0 7fb315c32000-7fb315c33000 ---p 00000000 00:00 0 7fb315c33000-7fb315cd4000 rw-p 00000000 00:00 0 7fb315cd4000-7fb315cd5000 ---p 00000000 00:00 0 7fb315cd5000-7fb315d76000 rw-p 00000000 00:00 0 7fb315d76000-7fb315d77000 ---p 00000000 00:00 0 7fb315d77000-7fb315e18000 rw-p 00000000 00:00 0 7fb315e18000-7fb315e19000 ---p 00000000 00:00 0 7fb315e19000-7fb315eba000 rw-p 00000000 00:00 0 7fb315eba000-7fb315ebb000 ---p 00000000 00:00 0 7fb315ebb000-7fb315f5c000 rw-p 00000000 00:00 0 7fb315f5c000-7fb315f5d000 ---p 00000000 00:00 0 7fb315f5d000-7fb315ffe000 rw-p 00000000 00:00 0 7fb315ffe000-7fb315fff000 ---p 00000000 00:00 0 7fb315fff000-7fb3160f0000 rw-p 00000000 00:00 0 7fb3160ff000-7fb317200000 rw-p 00000000 00:00 0 7fb317200000-7fb3247f9000 r--p 00000000 00:23 156716 /usr/lib/locale/locale-archive 7fb324808000-7fb32480a000 r--p 00000000 00:23 554324 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/digest.so 7fb32480a000-7fb32480c000 r-xp 00002000 00:23 554324 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/digest.so 7fb32480c000-7fb32480d000 r--p 00004000 00:23 554324 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/digest.so 7fb32480d000-7fb32480e000 r--p 00004000 00:23 554324 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/digest.so 7fb32480e000-7fb32480f000 rw-p 00005000 00:23 554324 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/digest.so 7fb32480f000-7fb324880000 rw-p 00000000 00:00 0 7fb324881000-7fb324885000 rw-p 00000000 00:00 0 7fb324885000-7fb3248ab000 r--p 00000000 00:23 157485 /usr/lib64/libc.so.6 7fb3248ab000-7fb324a08000 r-xp 00026000 00:23 157485 /usr/lib64/libc.so.6 7fb324a08000-7fb324a55000 r--p 00183000 00:23 157485 /usr/lib64/libc.so.6 7fb324a55000-7fb324a59000 r--p 001d0000 00:23 157485 /usr/lib64/libc.so.6 7fb324a59000-7fb324a5b000 rw-p 001d4000 00:23 157485 /usr/lib64/libc.so.6 7fb324a5b000-7fb324a63000 rw-p 00000000 00:00 0 7fb324a63000-7fb324a73000 r--p 00000000 00:23 157488 /usr/lib64/libm.so.6 7fb324a73000-7fb324ae8000 r-xp 00010000 00:23 157488 /usr/lib64/libm.so.6 7fb324ae8000-7fb324b42000 r--p 00085000 00:23 157488 /usr/lib64/libm.so.6 7fb324b42000-7fb324b43000 r--p 000de000 00:23 157488 /usr/lib64/libm.so.6 7fb324b43000-7fb324b44000 rw-p 000df000 00:23 157488 /usr/lib64/libm.so.6 7fb324b44000-7fb324b46000 r--p 00000000 00:23 1208073 /usr/lib64/libcrypt.so.2.0.0 7fb324b46000-7fb324b5a000 r-xp 00002000 00:23 1208073 /usr/lib64/libcrypt.so.2.0.0 7fb324b5a000-7fb324b73000 r--p 00016000 00:23 1208073 /usr/lib64/libcrypt.so.2.0.0 7fb324b73000-7fb324b74000 r--p 0002e000 00:23 1208073 /usr/lib64/libcrypt.so.2.0.0 7fb324b74000-7fb324b7d000 rw-p 00000000 00:00 0 7fb324b7d000-7fb324b8e000 r--p 00000000 00:23 32293 /usr/lib64/libgmp.so.10.4.1 7fb324b8e000-7fb324c0a000 r-xp 00011000 00:23 32293 /usr/lib64/libgmp.so.10.4.1 7fb324c0a000-7fb324c1f000 r--p 0008d000 00:23 32293 /usr/lib64/libgmp.so.10.4.1 7fb324c1f000-7fb324c21000 r--p 000a1000 00:23 32293 /usr/lib64/libgmp.so.10.4.1 7fb324c21000-7fb324c22000 rw-p 000a3000 00:23 32293 /usr/lib64/libgmp.so.10.4.1 7fb324c22000-7fb324c25000 r--p 00000000 00:23 33100 /usr/lib64/libz.so.1.2.13 7fb324c25000-7fb324c34000 r-xp 00003000 00:23 33100 /usr/lib64/libz.so.1.2.13 7fb324c34000-7fb324c3a000 r--p 00012000 00:23 33100 /usr/lib64/libz.so.1.2.13 7fb324c3a000-7fb324c3b000 r--p 00018000 00:23 33100 /usr/lib64/libz.so.1.2.13 7fb324c3b000-7fb324c3c000 rw-p 00000000 00:00 0 7fb324c3c000-7fb324c3d000 r--p 00000000 00:23 554338 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/io/nonblock.so 7fb324c3d000-7fb324c3e000 r-xp 00001000 00:23 554338 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/io/nonblock.so 7fb324c3e000-7fb324c3f000 r--p 00002000 00:23 554338 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/io/nonblock.so 7fb324c3f000-7fb324c40000 r--p 00002000 00:23 554338 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/io/nonblock.so 7fb324c40000-7fb324c41000 rw-p 00003000 00:23 554338 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/io/nonblock.so 7fb324c41000-7fb324c42000 r--p 00000000 00:23 554344 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/monitor.so 7fb324c42000-7fb324c43000 r-xp 00001000 00:23 554344 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/monitor.so 7fb324c43000-7fb324c44000 r--p 00002000 00:23 554344 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/monitor.so 7fb324c44000-7fb324c45000 r--p 00002000 00:23 554344 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/monitor.so 7fb324c45000-7fb324c46000 rw-p 00003000 00:23 554344 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/monitor.so 7fb324c46000-7fb324c47000 r--p 00000000 00:23 554361 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/enc/trans/transdb.so 7fb324c47000-7fb324c48000 r-xp 00001000 00:23 554361 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/enc/trans/transdb.so 7fb324c48000-7fb324c49000 r--p 00002000 00:23 554361 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/enc/trans/transdb.so 7fb324c49000-7fb324c4a000 r--p 00002000 00:23 554361 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/enc/trans/transdb.so 7fb324c4a000-7fb324c4b000 rw-p 00003000 00:23 554361 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/enc/trans/transdb.so 7fb324c4b000-7fb324c4c000 r--p 00000000 00:23 554382 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/enc/encdb.so 7fb324c4c000-7fb324c4d000 r-xp 00001000 00:23 554382 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/enc/encdb.so 7fb324c4d000-7fb324c4e000 r--p 00002000 00:23 554382 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/enc/encdb.so 7fb324c4e000-7fb324c4f000 r--p 00002000 00:23 554382 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/enc/encdb.so 7fb324c4f000-7fb324c50000 rw-p 00003000 00:23 554382 /home/postmodern/.rubies/ruby-trunk/lib/ruby/3.3.0+0/x86_64-linux/enc/encdb.so 7fb324c50000-7fb324c52000 rw-p 00000000 00:00 0 7fb324c52000-7fb324c53000 r--p 00000000 00:23 157482 /usr/lib64/ld-linux-x86-64.so.2 7fb324c53000-7fb324c79000 r-xp 00001000 00:23 157482 /usr/lib64/ld-linux-x86-64.so.2 7fb324c79000-7fb324c83000 r--p 00027000 00:23 157482 /usr/lib64/ld-linux-x86-64.so.2 7fb324c83000-7fb324c85000 r--p 00030000 00:23 157482 /usr/lib64/ld-linux-x86-64.so.2 7fb324c85000-7fb324c87000 rw-p 00032000 00:23 157482 /usr/lib64/ld-linux-x86-64.so.2 7ffd6d3bb000-7ffd6dbba000 rw-p 00000000 00:00 0 [stack] 7ffd6dbdf000-7ffd6dbe3000 r--p 00000000 00:00 0 [vvar] 7ffd6dbe3000-7ffd6dbe5000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall] Aborted (core dumped) ``` ### Versions * ruby 3.3.0dev (2023-08-02T18:35:08Z master 32e828bb4a) [x86_64-linux] * ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux] * ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-linux] * OpenSSL 3.0.9 30 May 2023 (Library: OpenSSL 3.0.9 30 May 2023) ### GDB Backtrace ``` (gdb) bt -full #0 BN_is_negative (a=0x0) at crypto/bn/bn_lib.c:945 No locals. #1 0x00007fffe78b8d08 in bn_to_asn1_string (bn=0x0, ai=0x0, atype=) at crypto/asn1/a_int.c:479 ret = 0x555555e57570 len = __func__ = "bn_to_asn1_string" #2 0x00007fffe792514a in dh_pub_encode (pk=0x555555e580e0, pkey=0x555555e224b0) at crypto/dh/dh_ameth.c:134 dh = 0x555555e572e0 ptype = 16 penc = 0x0 penclen = str = 0x555555e574b0 pub_key = 0x0 __func__ = "dh_pub_encode" #3 0x00007fffe7a4134f in X509_PUBKEY_set (x=0x555555e2d440, pkey=0x555555e224b0) at crypto/x509/x_pubkey.c:332 pk = 0x555555e580e0 __func__ = "X509_PUBKEY_set" #4 0x00007fffe7e31a29 in ossl_x509_set_public_key (self=, key=140737082617600) at ossl_x509cert.c:525 x509 = 0x555555e2d3f0 pkey = 0x555555e224b0 #5 0x00005555557688b9 in vm_call_cfunc_with_frame_ (stack_bottom=, argv=, argc=, calling=, reg_cfp=, ec=) at /home/postmodern/src/ruby/vm_insnhelper.c:3462 ci = cc = val = me = cfunc = recv = frame_type = len = block_handler = ci = cc = val = me = cfunc = recv = block_handler = frame_type = len = args = flag_arg_ = hooks_arg_ = flag_arg_ = hooks_arg_ = args = #6 vm_call_cfunc_with_frame (calling=, reg_cfp=, ec=) at /home/postmodern/src/ruby/vm_insnhelper.c:3490 argc = stack_bottom = argv = argc = stack_bottom = argv = #7 vm_call_cfunc_other (ec=0x5555559f1080, reg_cfp=0x7ffff7bf1fa0, calling=) at /home/postmodern/src/ruby/vm_insnhelper.c:3516 ci = argv_ary = #8 0x0000555555785a37 in vm_sendish (method_explorer=, block_handler=, cd=, reg_cfp=, ec=) at /home/postmodern/src/ruby/vm_callinfo.h:403 val = 93824999513184 ci = 0x18 cc = recv = 0 argc = calling = {cd = 0x555555c45c60, cc = 0x7fffe7d0eed8, block_handler = 0, recv = 140737082618600, argc = 1, kw_splat = false, heap_argv = 0} val = ci = cc = argc = recv = calling = #9 vm_exec_core (ec=0x0, ec@entry=0x5555559f1080) at /home/postmodern/src/ruby/insns.def:835 bh = cd = 0x555555c45c60 leaf = val = 93824999513184 reg_pc = 0x555555b3aef8 reg_cfp = 0x7ffff7bf1fa0 insns_address_table = {0x555555788b24 , 0x55555578789f , 0x55555578783b , 0x5555557877c9 , 0x55555578775c , 0x5555557876f0 , 0x555555787624 , 0x555555787a0c , 0x555555787901 , 0x555555787958 , 0x555555787509 , 0x555555787395 , 0x555555787244 , 0x5555557871f2 , 0x5555557871a4 , 0x555555787170 , 0x555555787141 , 0x555555787115 , 0x5555557870e9 , 0x5555557870bd , 0x55555578702a , 0x555555786ff5 , 0x555555786fa6 , 0x555555786f69 , 0x555555786ef3 , 0x555555786ec5 , 0x555555786e70 , 0x555555786e02 , 0x555555786dd1 , 0x555555786da0 , 0x555555786c02 , 0x555555786ae4 , 0x555555786a93 , 0x555555786a46 , 0x555555786a05 , 0x555555786b98 , 0x555555786b66 , 0x555555786bb6 , 0x5555557869da , 0x555555786938 , 0x5555557868fa , 0x5555557868bb , 0x555555786892 , 0x55555578682d , 0x5555557867d5 , 0x55555578673a , 0x5555557866d4 , 0x555555786660 , 0x5555557865c5 , 0x555555786593 , 0x555555786556 , 0x5555557864f7 , 0x555555785980 , 0x55555578645c , 0x555555786419 , 0x555555788971 , 0x5555557862ef , 0x55555578625e , 0x555555786332 , 0x555555786147 , 0x555555786091 , 0x555555787be1 , 0x55555578605a , 0x555555786004 , 0x555555787a97 , 0x555555787a64 , 0x555555787aed , 0x555555785f28 , 0x55555578890e , 0x555555788a31 , 0x555555788879 , 0x555555788a93 , 0x5555557885b4 , 0x55555578865d , 0x5555557886b3 , 0x555555788721 , 0x555555788777 , 0x5555557887cd , 0x555555788823 , 0x5555557889b8 , 0x5555557883ac , 0x5555557883f3 , 0x555555788445 , 0x5555557884a6 , 0x555555785e90 , 0x555555785e4f , 0x555555788526 , 0x55555578856d , 0x555555788277 , 0x5555557882a0 , 0x5555557882fe , 0x55555578835e , 0x555555785de8 , 0x555555785d72 , 0x555555785cc6 , 0x555555785c88 , 0x555555785c42 , 0x555555785bfc , 0x555555785bae , 0x555555785b82 , 0x555555785b56 , 0x555555788393 , 0x555555787893 , 0x55555578782f , 0x5555557877bd , 0x555555787750 , 0x5555557876e4 , 0x555555787618 , 0x555555787a00 , 0x5555557878f5 , 0x55555578794c , 0x5555557874fd , 0x555555787389 , 0x555555787238 , 0x5555557871e6 , 0x555555787198 , 0x555555787164 , 0x555555787135 , 0x555555787109 , 0x5555557870dd , 0x5555557870b1 , 0x55555578701e , 0x555555786fe9 , 0x555555786f9a , 0x555555786f5d , 0x555555786ee7 , 0x555555786eb9 , 0x555555786e64 , 0x555555786df6 , 0x555555786dc5 , 0x555555786d94 , 0x555555786bf6 , 0x555555786ad8 , 0x555555786a87 , 0x555555786a3a , 0x5555557869f9 , 0x555555786b8c , 0x555555786b5a , 0x555555786baa , 0x5555557869ce , 0x55555578692c , 0x5555557868ee , 0x5555557868af , 0x555555786886 , 0x555555786821 , 0x5555557867c9 , 0x55555578672e , 0x5555557866c8 , 0x555555786654 , 0x5555557865b9 , 0x555555786587 , 0x55555578654a , 0x5555557864eb , 0x5555557880fa , 0x555555786450 , 0x55555578640d , 0x55555578810b , 0x5555557862e3 , 0x555555786252 , 0x555555786326 , 0x55555578613b , 0x555555786085 , 0x555555787bd5 , 0x55555578604e , 0x555555785ff8 , 0x555555787a8b , 0x555555787a58 , 0x555555787ae1 , 0x555555785f1c , 0x55555578811c , 0x55555578812d , 0x55555578813e , 0x55555578814f , 0x555555788160 , 0x555555788171 , 0x555555788182 , 0x55555578819a , 0x5555557881ab , 0x5555557881bc , 0x5555557881cd , 0x5555557881de , 0x5555557881ef , 0x555555788200 , 0x555555788211 , 0x555555788222 , 0x555555785e84 , 0x555555785e43 , 0x555555788233 , 0x555555788244 , 0x555555788255 , 0x555555788266 , 0x55555578596e , 0x55555578596e , 0x555555785ddc , 0x555555785d66 , 0x555555785cba , 0x555555785c7c , 0x555555785c36 , 0x555555785bf0 , 0x555555785ba2 ...} #10 0x00005555557766c4 in rb_vm_exec (ec=0x5555559f1080) at vm.c:2390 _ec = 0x5555559f1080 _tag = {tag = 36, retval = 4, buf = {0x7fffffffda20, 0x5555557764d0 , 0x7fffffffd8e0, 0x14da16a575657c00, 0x7ffff7a2a6f8}, prev = 0x7fffffffda60, state = RUBY_TAG_NONE, lock_rec = 0} state = result = #11 0x000055555578cc98 in rb_iseq_eval_main (iseq=) at vm.c:2640 ec = val = #12 0x000055555558a785 in rb_ec_exec_node (ec=ec@entry=0x5555559f1080, n=n@entry=0x7fffe7ea0aa8) at eval.c:287 th = _ec = _tag = {tag = 36, retval = 93824994127712, buf = {0x5555559f1080, 0x55555558a7da , 0x7fffffffda30, 0x7fffe7ea0aa8, 0x24}, prev = 0x0, state = RUBY_TAG_NONE, lock_rec = 0} state = 0 iseq = 0x7fffe7ea0aa8 #13 0x000055555558fa5b in ruby_run_node (n=0x7fffe7ea0aa8) at eval.c:328 ec = 0x5555559f1080 status = 32767 #14 0x000055555558a242 in rb_main (argv=0x7fffffffdc78, argc=2) at ./main.c:39 variable_in_this_stack_frame = 0 #15 main (argc=, argv=) at ./main.c:58 ``` -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/