[MacRuby-devel] [MacRuby] #811: Bus error encrypting/decrypting with OpenSSL
MacRuby
ruby-noreply at macosforge.org
Sat Jul 24 12:46:22 PDT 2010
#811: Bus error encrypting/decrypting with OpenSSL
-------------------------------+--------------------------------------------
Reporter: pwilson@… | Owner: lsansonetti@…
Type: defect | Status: new
Priority: blocker | Milestone: MacRuby 0.7
Component: MacRuby | Keywords:
-------------------------------+--------------------------------------------
I've verified that Trac 809 fixes an OpenSSL bug I ran into, but I'm
running into additional failures later in the process of doing
encryption/decryption operations. I'm attaching a test file that first
encrypts some data with an RSA key and then decrypts it.
On encryption, the script bus errors with this stack trace:
{{{
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x0000000100972cd8
0x00007fff84444289 in BN_bn2bin ()
(gdb) bt
#0 0x00007fff84444289 in BN_bn2bin ()
#1 0x00007fff844b0634 in RSA_eay_public_encrypt ()
#2 0x00007fff844c4c6b in RSA_public_encrypt ()
#3 0x0000000103d1ad79 in ossl_rsa_public_encrypt ()
#4 0x00000001001408e9 in rb_vm_dispatch ()
#5 0x0000000103a00d50 in ?? ()
#6 0x0000000103a03d1c in ?? ()
#7 0x0000000100140805 in rb_vm_dispatch ()
#8 0x0000000103a00d50 in ?? ()
#9 0x0000000103a00346 in ?? ()
#10 0x000000010014d5b8 in rb_vm_run ()
#11 0x0000000100040530 in ruby_run_node ()
#12 0x0000000100000d28 in main ()
}}}
If I encrypt the data using Ruby 1.9.2, save it to a file, and then use
MacRuby to decrypt it, I get this stack trace:
{{{
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x0000000100972cd8
0x00007fffffe007c5 in __memcpy ()
(gdb) bt
#0 0x00007fffffe007c5 in __memcpy ()
#1 0x00007fff8449e138 in RSA_padding_check_PKCS1_type_2 ()
#2 0x00007fff844b127e in RSA_eay_private_decrypt ()
#3 0x00007fff844c4c8b in RSA_private_decrypt ()
#4 0x0000000103c1a8a8 in ossl_rsa_private_decrypt ()
#5 0x00000001001408e9 in rb_vm_dispatch ()
#6 0x0000000103a00be0 in ?? ()
#7 0x0000000103a0aa8d in ?? ()
#8 0x000000010014082b in rb_vm_dispatch ()
#9 0x0000000103a00be0 in ?? ()
#10 0x0000000103a0a344 in ?? ()
#11 0x0000000100140846 in rb_vm_dispatch ()
#12 0x0000000103a00be0 in ?? ()
#13 0x0000000103a0023e in ?? ()
#14 0x000000010014d5b8 in rb_vm_run ()
#15 0x0000000100040530 in ruby_run_node ()
#16 0x0000000100000d28 in main ()
}}}
Looking at the source code, I assume it is pretty much the same issue as
fixed in Trac 809 (revision 4373) for the Cipher code. Ie...
{{{
- str = rb_str_new(0, out_len);
+ str = rb_bstr_new();
+ rb_bstr_resize(str, out_len);
}}}
--
Ticket URL: <http://www.macruby.org/trac/ticket/811>
MacRuby <http://macruby.org/>
More information about the MacRuby-devel
mailing list