Project

General

Profile

Actions

Bug #2768

closed

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

Added by zeri (Julian Wälde) about 14 years ago. Updated over 12 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 1.9.1p378 (2010-01-10 revision 26273) [x86_64-linux]
Backport:
[ruby-core:28269]

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


Files

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

Updated by zeri (Julian Wälde) about 14 years ago

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

Actions #2

Updated by naruse (Yui NARUSE) about 14 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 <ossl_cipher_update>, 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

Updated by nahi (Hiroshi Nakamura) over 12 years ago

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

Updated by nahi (Hiroshi Nakamura) over 12 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;

Updated by kosaki (Motohiro KOSAKI) over 12 years ago

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

Updated by nahi (Hiroshi Nakamura) over 12 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.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0