Bug #2768

SEGV when using OpenSSL::Cipher (AES) in certain way

Added by Julian Wälde over 5 years ago. Updated about 4 years ago.

[ruby-core:28269]
Status:Closed
Priority:Normal
Assignee:Hiroshi Nakamura
ruby -v:ruby 1.9.1p378 (2010-01-10 revision 26273) [x86_64-linux] Backport:

Description

=begin
this command gives me an SEGV on my boxes:

ruby -e 'require "openssl";OpenSSL::Cipher::AES128.new("ECB").update "testtesttesttest"'

while this command does not:

ruby -e 'require "openssl";OpenSSL::Cipher::AES128.new("ECB").update "testtesttesttes"'

A friend of mine reproduced it on his mac(1.8.6). It also worked on a server where ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux] is running.

It works for any kind of Blockciphermode, but not for other ciphers (e.g. BF)
=end

calltrace (3.4 KB) Julian Wälde, 02/21/2010 12:15 AM

Associated revisions

Revision 32723
Added by Hiroshi Nakamura about 4 years ago

  • ext/openssl/ossl_cipher.c (ossl_cipher_initialize): Avoid possible SEGV from AES encryption/decryption. Processing data by Cipher#update without initializing key (meaningless usage of Cipher object since we don't offer a way to export a key) could cause SEGV.

In OpenSSL, the EVP which has EVP_CIPH_RAND_KEY flag (such as DES3)
allows uninitialized key, but other EVPs (such as AES) does not
allow it. Calling EVP_CipherUpdate() without initializing key causes
SEGV so we set the data filled with "\0" as the key by default. See
#2768.

  • test/openssl/test_cipher.rb: test it.

Revision 32723
Added by Hiroshi Nakamura about 4 years ago

  • ext/openssl/ossl_cipher.c (ossl_cipher_initialize): Avoid possible SEGV from AES encryption/decryption. Processing data by Cipher#update without initializing key (meaningless usage of Cipher object since we don't offer a way to export a key) could cause SEGV.

In OpenSSL, the EVP which has EVP_CIPH_RAND_KEY flag (such as DES3)
allows uninitialized key, but other EVPs (such as AES) does not
allow it. Calling EVP_CipherUpdate() without initializing key causes
SEGV so we set the data filled with "\0" as the key by default. See
#2768.

  • test/openssl/test_cipher.rb: test it.

History

#1 Updated by Julian Wälde over 5 years ago

=begin
here the output that irb does give me for the command
=end

#2 Updated by Yui NARUSE over 5 years ago

  • Category changed from lib to ext
  • Status changed from Open to Third Party's Issue

=begin
Following is gdb backtrace and valgrind result; it seems OpenSSL's Issue.

% gdb --args ./ruby -e 'require "openssl";OpenSSL::Cipher::AES128.new("ECB").update "testtesttesttest"'
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
(gdb) r
Starting program: /home/naruse/obj/ruby-trunk/ruby -e require\ \"openssl\"\;OpenSSL::Cipher::AES128.new(\"ECB\").update\ \"testtesttesttest\"
[New LWP 100281]
[New Thread 8012041c0 (LWP 100281)]
[New Thread 80120ae40 (LWP 100205)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 8012041c0 (LWP 100281)]
0x0000000801d67938 in AES_decrypt () from /lib/libcrypto.so.6
(gdb) bt
#0 0x0000000801d67938 in AES_decrypt () from /lib/libcrypto.so.6
#1 0x0000000801d4a988 in EVP_aes_256_cfb8 () from /lib/libcrypto.so.6
#2 0x0000000801d81273 in EVP_EncryptUpdate () from /lib/libcrypto.so.6
#3 0x0000000801d8133e in EVP_DecryptUpdate () from /lib/libcrypto.so.6
#4 0x0000000801a489c3 in ossl_cipher_update (argc=1, argv=0x801244038, self=34380098480)
at ../../../../src/ruby-trunk/ext/openssl/ossl_cipher.c:332
#5 0x00000008007d018d in call_cfunc (func=0x801a48830 , recv=34380098480,
len=-1, argc=1, argv=0x801244038) at vm_insnhelper.c:290
#6 0x00000008007d003c in vm_call_cfunc (th=0x80120b600, reg_cfp=0x801343ef8, num=1,
recv=34380098480, blockptr=0x0, me=0x80182d860) at vm_insnhelper.c:377
#7 0x00000008007cf3c9 in vm_call_method (th=0x80120b600, cfp=0x801343ef8, num=1, blockptr=0x0,
flag=0, id=5008, me=0x80182d860, recv=34380098480) at vm_insnhelper.c:500
#8 0x00000008007ca13f in vm_exec_core (th=0x80120b600, initial=0) at insns.def:999
#9 0x00000008007d97e9 in vm_exec (th=0x80120b600) at ../../src/ruby-trunk/vm.c:1132
#10 0x00000008007da230 in rb_iseq_eval_main (iseqval=34380087760) at ../../src/ruby-trunk/vm.c:1373
#11 0x00000008006a8bd1 in ruby_exec_internal (n=0x8013681d0) at ../../src/ruby-trunk/eval.c:204
#12 0x00000008006a8d0e in ruby_exec_node (n=0x8013681d0) at ../../src/ruby-trunk/eval.c:251
#13 0x00000008006a8cd8 in ruby_run_node (n=0x8013681d0) at ../../src/ruby-trunk/eval.c:244
#14 0x000000000040091f in main (argc=3, argv=0x7fffffffe1e8) at ../../src/ruby-trunk/main.c:35

% valgrind ./ruby -e 'require "openssl";OpenSSL::Cipher::AES128.new("ECB").update "testtesttesttest"'
==52110== Memcheck, a memory error detector
==52110== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
==52110== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info
==52110== Command: ./ruby -e require\ "openssl";OpenSSL::Cipher::AES128.new("ECB").update\ "testtesttesttest"
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD76580: is_pointer_to_heap (gc.c:1287)
==52110== by 0xD7652D: mark_locations_array (gc.c:1315)
==52110== by 0xD785F6: mark_current_machine_context (gc.c:2116)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110== by 0xE9ECC0: ruby_suppress_tracing (thread.c:4078)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD7658E: is_pointer_to_heap (gc.c:1287)
==52110== by 0xD7652D: mark_locations_array (gc.c:1315)
==52110== by 0xD785F6: mark_current_machine_context (gc.c:2116)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110== by 0xE9ECC0: ruby_suppress_tracing (thread.c:4078)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD765E2: is_pointer_to_heap (gc.c:1288)
==52110== by 0xD7652D: mark_locations_array (gc.c:1315)
==52110== by 0xD785F6: mark_current_machine_context (gc.c:2116)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110== by 0xE9ECC0: ruby_suppress_tracing (thread.c:4078)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD76645: is_pointer_to_heap (gc.c:1296)
==52110== by 0xD7652D: mark_locations_array (gc.c:1315)
==52110== by 0xD785F6: mark_current_machine_context (gc.c:2116)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110== by 0xE9ECC0: ruby_suppress_tracing (thread.c:4078)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD7666D: is_pointer_to_heap (gc.c:1297)
==52110== by 0xD7652D: mark_locations_array (gc.c:1315)
==52110== by 0xD785F6: mark_current_machine_context (gc.c:2116)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110== by 0xE9ECC0: ruby_suppress_tracing (thread.c:4078)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD76BBD: gc_mark (gc.c:1491)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD785F6: mark_current_machine_context (gc.c:2116)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110== by 0xE9ECC0: ruby_suppress_tracing (thread.c:4078)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD76BCA: gc_mark (gc.c:1491)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD785F6: mark_current_machine_context (gc.c:2116)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110== by 0xE9ECC0: ruby_suppress_tracing (thread.c:4078)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76BEB: gc_mark (gc.c:1492)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD785F6: mark_current_machine_context (gc.c:2116)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110== by 0xE9ECC0: ruby_suppress_tracing (thread.c:4078)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76BFB: gc_mark (gc.c:1493)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD785F6: mark_current_machine_context (gc.c:2116)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110== by 0xE9ECC0: ruby_suppress_tracing (thread.c:4078)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD76580: is_pointer_to_heap (gc.c:1287)
==52110== by 0xD7652D: mark_locations_array (gc.c:1315)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD7658E: is_pointer_to_heap (gc.c:1287)
==52110== by 0xD7652D: mark_locations_array (gc.c:1315)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD765E2: is_pointer_to_heap (gc.c:1288)
==52110== by 0xD7652D: mark_locations_array (gc.c:1315)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD76645: is_pointer_to_heap (gc.c:1296)
==52110== by 0xD7652D: mark_locations_array (gc.c:1315)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD7666D: is_pointer_to_heap (gc.c:1297)
==52110== by 0xD7652D: mark_locations_array (gc.c:1315)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD76BBD: gc_mark (gc.c:1491)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD76BCA: gc_mark (gc.c:1491)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76BEB: gc_mark (gc.c:1492)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76BFB: gc_mark (gc.c:1493)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76C0E: gc_mark (gc.c:1494)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76C19: gc_mark (gc.c:1494)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110== by 0xDC734D: yycompile0 (parse.y:5062)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD76D9F: gc_mark_children (gc.c:1532)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD76DAC: gc_mark_children (gc.c:1532)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76DB2: gc_mark_children (gc.c:1532)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76DDB: gc_mark_children (gc.c:1536)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76E1E: gc_mark_children (gc.c:1543)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76EA8: gc_mark_children (gc.c:1594)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76EBF: gc_mark_children (gc.c:1608)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76DC1: gc_mark_children (gc.c:1532)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76FC3: gc_mark_children (gc.c:1674)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76FD7: gc_mark_children (gc.c:1675)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD7718A: gc_mark_children (gc.c:1705)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD7719B: gc_mark_children (gc.c:1705)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD771A5: gc_mark_children (gc.c:1705)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD771B8: gc_mark_children (gc.c:1705)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD77337: gc_mark_children (gc.c:1731)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD77348: gc_mark_children (gc.c:1732)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD77360: gc_mark_children (gc.c:1733)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD77378: gc_mark_children (gc.c:1734)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD77393: gc_mark_children (gc.c:1735)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD773AE: gc_mark_children (gc.c:1736)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD773C9: gc_mark_children (gc.c:1737)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD771D3: gc_mark_children (gc.c:1705)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD771E4: gc_mark_children (gc.c:1705)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD771EE: gc_mark_children (gc.c:1705)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD77201: gc_mark_children (gc.c:1705)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76E80: gc_mark_children (gc.c:1567)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76E97: gc_mark_children (gc.c:1573)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD77064: gc_mark_children (gc.c:1685)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0xD77071: gc_mark_children (gc.c:1685)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD77077: gc_mark_children (gc.c:1685)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD77086: gc_mark_children (gc.c:1685)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD770A8: gc_mark_children (gc.c:1690)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD770D3: gc_mark_children (gc.c:1690)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD770ED: gc_mark_children (gc.c:1691)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD7710F: gc_mark_children (gc.c:1691)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76EE1: gc_mark_children (gc.c:1630)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76EF8: gc_mark_children (gc.c:1631)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD770B9: gc_mark_children (gc.c:1690)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD77133: gc_mark_children (gc.c:1693)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0xD76E69: gc_mark_children (gc.c:1553)
==52110== by 0xD76CB9: gc_mark (gc.c:1508)
==52110== by 0xD76543: mark_locations_array (gc.c:1316)
==52110== by 0xD766F7: gc_mark_locations (gc.c:1329)
==52110== by 0xD78607: mark_current_machine_context (gc.c:2120)
==52110== by 0xD788BC: garbage_collect (gc.c:2169)
==52110== by 0xD75E99: rb_newobj_from_heap (gc.c:1012)
==52110== by 0xD75F83: rb_newobj (gc.c:1095)
==52110== by 0xD75FAB: rb_node_newnode (gc.c:1102)
==52110== by 0xDCF60E: node_newnode (parse.y:7728)
==52110== by 0xDCF973: block_append_gen (parse.y:7823)
==52110== by 0xDBDE44: ruby_yyparse (parse.y:946)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038A2C: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038A39: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038A49: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038A53: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038A5A: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038A5E: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038A6D: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038A7E: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038A88: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038A97: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038AA7: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038AB7: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038AC0: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038ACA: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038AD4: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038ADB: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Conditional jump or move depends on uninitialised value(s)
==52110== at 0x2038AE4: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x203891A: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x2038925: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x203893F: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==52110== Use of uninitialised value of size 8
==52110== at 0x203894D: AES_decrypt (in /lib/libcrypto.so.6)
==52110== by 0x201B987: ??? (in /lib/libcrypto.so.6)
==52110== by 0x2052272: EVP_EncryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x205233D: EVP_DecryptUpdate (in /lib/libcrypto.so.6)
==52110== by 0x1D199C2: ossl_cipher_update (ossl_cipher.c:332)
==52110== by 0xE8B18C: call_cfunc (vm_insnhelper.c:290)
==52110== by 0xE8B03B: vm_call_cfunc (vm_insnhelper.c:377)
==52110== by 0xE8A3C8: vm_call_method (vm_insnhelper.c:500)
==52110== by 0xE8513E: vm_exec_core (insns.def:999)
==52110== by 0xE947E8: vm_exec (vm.c:1132)
==52110== by 0xE9522F: rb_iseq_eval_main (vm.c:1373)
==52110== by 0xD63BD0: ruby_exec_internal (eval.c:204)
==52110==
==521

#3 Updated by Hiroshi Nakamura about 4 years ago

  • Status changed from Third Party's Issue to Assigned
  • Assignee set to Hiroshi Nakamura
  • Target version set to 1.9.3

#4 Updated by Hiroshi Nakamura about 4 years ago

This patch should fix the SEGV. Still giving much thought whether it's safe to apply or not...

Index: ext/openssl/ossl_cipher.c

--- ext/openssl/ossl_cipher.c (revision 32672)
+++ ext/openssl/ossl_cipher.c (working copy)
@@ -102,6 +102,7 @@
EVP_CIPHER_CTX *ctx;
const EVP_CIPHER *cipher;
char *name;
+ unsigned char key[EVP_MAX_KEY_LENGTH];

 name = StringValuePtr(str);
 GetCipherInit(self, ctx);

@@ -113,7 +114,14 @@
if (!(cipher = EVP_get_cipherbyname(name))) {
ossl_raise(rb_eRuntimeError, "unsupported cipher algorithm (%s)", name);
}
- if (EVP_CipherInit_ex(ctx, cipher, NULL, NULL, NULL, -1) != 1)
+ /*
+ * The EVP which has EVP_CIPH_RAND_KEY flag (such as DES3) allows
+ * uninitialized key, but other EVPs (such as AES) does not allow it.
+ * Calling EVP_CipherUpdate() without initializing key causes SEGV so we
+ * set the data filled with "\0" as the key by default.
+ */
+ memset(key, 0, EVP_MAX_KEY_LENGTH);
+ if (EVP_CipherInit_ex(ctx, cipher, NULL, key, NULL, -1) != 1)
ossl_raise(eCipherError, NULL);

 return self;

#5 Updated by Motohiro KOSAKI about 4 years ago

Ping? Nahi-san, can you please tell us your final decision?

#6 Updated by Hiroshi Nakamura about 4 years ago

  • Status changed from Assigned to Closed

Thanks for heads-up!

I applied the patch to trunk at r32723 and ruby_1_9_3 at r32724. Closing.

Also available in: Atom PDF