Modified: MacRuby/trunk/ext/openssl/ossl_rand.c (3771 => 3772)
--- MacRuby/trunk/ext/openssl/ossl_rand.c 2010-03-16 20:36:23 UTC (rev 3771)
+++ MacRuby/trunk/ext/openssl/ossl_rand.c 2010-03-16 20:46:19 UTC (rev 3772)
@@ -98,8 +98,13 @@
VALUE str;
int n = NUM2INT(len);
- str = rb_str_new(0, n);
- if (!RAND_bytes((unsigned char *)RSTRING_PTR(str), n)) {
+ if (n <= 0) {
+ rb_raise(rb_eArgError, "given length should be greater than 0");
+ }
+
+ str = rb_bstr_new();
+ rb_bstr_resize(str, n);
+ if (!RAND_bytes(rb_bstr_bytes(str), n)) {
ossl_raise(eRandomError, NULL);
}