1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* ext/openssl/ossl_bn.c (ossl_bn_s_rand, ossl_bn_s_pseudo_rand),

ext/openssl/ossl_pkey_dh.c (ossl_dh_s_generate)
  (ossl_dh_initialize),
  ext/openssl/ossl_pkey_dsa.c (ossl_dsa_s_generate),
  ext/openssl/ossl_rand.c (ossl_rand_bytes)
  (ossl_rand_pseudo_bytes, ossl_rand_egd_bytes),
  ext/openssl/ossl_x509store.c (ossl_x509stctx_set_error): Do not
  use FIX2INT() without checking the value type.  Use NUM2INT()
  instead; found by akr in [ruby-dev:34890].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
knu 2008-05-29 17:44:08 +00:00
parent 61fd28b3cf
commit cf00a9e4bd
6 changed files with 28 additions and 12 deletions

View file

@ -1,3 +1,15 @@
Fri May 30 02:35:00 2008 Akinori MUSHA <knu@iDaemons.org>
* ext/openssl/ossl_bn.c (ossl_bn_s_rand, ossl_bn_s_pseudo_rand),
ext/openssl/ossl_pkey_dh.c (ossl_dh_s_generate)
(ossl_dh_initialize),
ext/openssl/ossl_pkey_dsa.c (ossl_dsa_s_generate),
ext/openssl/ossl_rand.c (ossl_rand_bytes)
(ossl_rand_pseudo_bytes, ossl_rand_egd_bytes),
ext/openssl/ossl_x509store.c (ossl_x509stctx_set_error): Do not
use FIX2INT() without checking the value type. Use NUM2INT()
instead; found by akr in [ruby-dev:34890].
Thu May 29 20:07:45 2008 Akinori MUSHA <knu@iDaemons.org>
* configure.in, win32/Makefile.sub, mkconfig.rb, instruby.rb,

View file

@ -515,7 +515,7 @@ BIGNUM_SELF_SHIFT(rshift);
bottom = (odd == Qtrue) ? 1 : 0; \
/* FALLTHROUGH */ \
case 2: \
top = FIX2INT(fill); \
top = NUM2INT(fill); \
} \
b = NUM2INT(bits); \
if (!(result = BN_new())) { \

View file

@ -116,9 +116,9 @@ ossl_dh_s_generate(int argc, VALUE *argv, VALUE klass)
VALUE size, gen, obj;
if (rb_scan_args(argc, argv, "11", &size, &gen) == 2) {
g = FIX2INT(gen);
g = NUM2INT(gen);
}
dh = dh_generate(FIX2INT(size), g);
dh = dh_generate(NUM2INT(size), g);
obj = dh_instance(klass, dh);
if (obj == Qfalse) {
DH_free(dh);
@ -158,7 +158,7 @@ ossl_dh_initialize(int argc, VALUE *argv, VALUE self)
}
else if (FIXNUM_P(arg)) {
if (!NIL_P(gen)) {
g = FIX2INT(gen);
g = NUM2INT(gen);
}
if (!(dh = dh_generate(FIX2INT(arg), g))) {
ossl_raise(eDHError, NULL);

View file

@ -110,7 +110,7 @@ dsa_generate(int size)
static VALUE
ossl_dsa_s_generate(VALUE klass, VALUE size)
{
DSA *dsa = dsa_generate(FIX2INT(size)); /* err handled by dsa_instance */
DSA *dsa = dsa_generate(NUM2INT(size)); /* err handled by dsa_instance */
VALUE obj = dsa_instance(klass, dsa);
if (obj == Qfalse) {

View file

@ -96,9 +96,10 @@ static VALUE
ossl_rand_bytes(VALUE self, VALUE len)
{
VALUE str;
str = rb_str_new(0, FIX2INT(len));
if (!RAND_bytes(RSTRING_PTR(str), FIX2INT(len))) {
long n = NUM2INT(len);
str = rb_str_new(0, n);
if (!RAND_bytes(RSTRING_PTR(str), n)) {
ossl_raise(eRandomError, NULL);
}
@ -114,9 +115,10 @@ static VALUE
ossl_rand_pseudo_bytes(VALUE self, VALUE len)
{
VALUE str;
long n = NUM2INT(len);
str = rb_str_new(0, FIX2INT(len));
if (!RAND_pseudo_bytes(RSTRING_PTR(str), FIX2INT(len))) {
str = rb_str_new(0, n);
if (!RAND_pseudo_bytes(RSTRING_PTR(str), n)) {
ossl_raise(eRandomError, NULL);
}
@ -147,9 +149,11 @@ ossl_rand_egd(VALUE self, VALUE filename)
static VALUE
ossl_rand_egd_bytes(VALUE self, VALUE filename, VALUE len)
{
long n = NUM2INT(len);
SafeStringValue(filename);
if (!RAND_egd_bytes(RSTRING_PTR(filename), FIX2INT(len))) {
if (!RAND_egd_bytes(RSTRING_PTR(filename), n)) {
ossl_raise(eRandomError, NULL);
}
return Qtrue;

View file

@ -458,7 +458,7 @@ ossl_x509stctx_set_error(VALUE self, VALUE err)
X509_STORE_CTX *ctx;
GetX509StCtx(self, ctx);
X509_STORE_CTX_set_error(ctx, FIX2INT(err));
X509_STORE_CTX_set_error(ctx, NUM2INT(err));
return err;
}