[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