ruby-changes:5194
From: knu <ko1@a...>
Date: Fri, 30 May 2008 02:42:23 +0900 (JST)
Subject: [ruby-changes:5194] Ruby:r16689 (trunk): * ext/openssl/ossl_bn.c (ossl_bn_s_rand, ossl_bn_s_pseudo_rand),
knu 2008-05-30 02:41:56 +0900 (Fri, 30 May 2008) New Revision: 16689 Modified files: trunk/ChangeLog trunk/ext/openssl/ossl_bn.c trunk/ext/openssl/ossl_pkey_dh.c trunk/ext/openssl/ossl_pkey_dsa.c trunk/ext/openssl/ossl_rand.c trunk/ext/openssl/ossl_x509store.c Log: * 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]. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/openssl/ossl_pkey_dh.c?r1=16689&r2=16688&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/openssl/ossl_bn.c?r1=16689&r2=16688&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16689&r2=16688&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/openssl/ossl_pkey_dsa.c?r1=16689&r2=16688&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/openssl/ossl_x509store.c?r1=16689&r2=16688&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/openssl/ossl_rand.c?r1=16689&r2=16688&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 16688) +++ ChangeLog (revision 16689) @@ -1,3 +1,15 @@ +Fri May 30 02:35:00 2008 Akinori MUSHA <knu@i...> + + * 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]. + Fri May 30 02:08:20 2008 Yusuke Endoh <mame@t...> * signal.c (esignal_init): handle a non-integer argument correctly, Index: ext/openssl/ossl_pkey_dsa.c =================================================================== --- ext/openssl/ossl_pkey_dsa.c (revision 16688) +++ ext/openssl/ossl_pkey_dsa.c (revision 16689) @@ -110,7 +110,7 @@ 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) { Index: ext/openssl/ossl_x509store.c =================================================================== --- ext/openssl/ossl_x509store.c (revision 16688) +++ ext/openssl/ossl_x509store.c (revision 16689) @@ -458,7 +458,7 @@ 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; } Index: ext/openssl/ossl_bn.c =================================================================== --- ext/openssl/ossl_bn.c (revision 16688) +++ ext/openssl/ossl_bn.c (revision 16689) @@ -515,7 +515,7 @@ bottom = (odd == Qtrue) ? 1 : 0; \ /* FALLTHROUGH */ \ case 2: \ - top = FIX2INT(fill); \ + top = NUM2INT(fill); \ } \ b = NUM2INT(bits); \ if (!(result = BN_new())) { \ Index: ext/openssl/ossl_pkey_dh.c =================================================================== --- ext/openssl/ossl_pkey_dh.c (revision 16688) +++ ext/openssl/ossl_pkey_dh.c (revision 16689) @@ -116,9 +116,9 @@ 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 @@ } 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); Index: ext/openssl/ossl_rand.c =================================================================== --- ext/openssl/ossl_rand.c (revision 16688) +++ ext/openssl/ossl_rand.c (revision 16689) @@ -96,9 +96,10 @@ 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 @@ 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 @@ 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; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/