[macruby-changes] [5083] MacRuby/trunk/ext/openssl/ossl_bn.c
source_changes at macosforge.org
source_changes at macosforge.org
Mon Dec 27 11:39:57 PST 2010
Revision: 5083
http://trac.macosforge.org/projects/ruby/changeset/5083
Author: watson1978 at gmail.com
Date: 2010-12-27 11:39:52 -0800 (Mon, 27 Dec 2010)
Log Message:
-----------
Fixed the Bus Error within p OpenSSL::BN#to_s.
Test Script:
{{{
require 'openssl'
p OpenSSL::BN.rand(128).to_s(0)
p OpenSSL::BN.rand(128).to_s(2)
}}}
Modified Paths:
--------------
MacRuby/trunk/ext/openssl/ossl_bn.c
Modified: MacRuby/trunk/ext/openssl/ossl_bn.c
===================================================================
--- MacRuby/trunk/ext/openssl/ossl_bn.c 2010-12-27 14:16:40 UTC (rev 5082)
+++ MacRuby/trunk/ext/openssl/ossl_bn.c 2010-12-27 19:39:52 UTC (rev 5083)
@@ -184,14 +184,16 @@
switch (base) {
case 0:
len = BN_bn2mpi(bn, NULL);
- str = rb_str_new(0, len);
- if (BN_bn2mpi(bn, (unsigned char *)RSTRING_PTR(str)) != len)
+ str = rb_bstr_new();
+ rb_bstr_resize(str, len);
+ if (BN_bn2mpi(bn, (unsigned char *)rb_bstr_bytes(str)) != len)
ossl_raise(eBNError, NULL);
break;
case 2:
len = BN_num_bytes(bn);
- str = rb_str_new(0, len);
- if (BN_bn2bin(bn, (unsigned char *)RSTRING_PTR(str)) != len)
+ str = rb_bstr_new();
+ rb_bstr_resize(str, len);
+ if (BN_bn2bin(bn, (unsigned char *)rb_bstr_bytes(str)) != len)
ossl_raise(eBNError, NULL);
break;
case 10:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20101227/380a5ffa/attachment.html>
More information about the macruby-changes
mailing list