ruby-changes:19751
From: yugui <ko1@a...>
Date: Mon, 30 May 2011 07:53:35 +0900 (JST)
Subject: [ruby-changes:19751] yugui:r31796 (ruby_1_9_2): merges r31244 from trunk into ruby_1_9_2.
yugui 2011-05-30 07:49:10 +0900 (Mon, 30 May 2011) New Revision: 31796 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31796 Log: merges r31244 from trunk into ruby_1_9_2. -- * ext/openssl/ossl_pkey_dh.c (ossl_dh_initialize): pop pushed error after each try of reading. fixes #4550 * ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize): ditto. * ext/openssl/ossl_pkey_ec.c (ossl_ec_initialize): ditto. Modified files: branches/ruby_1_9_2/ChangeLog branches/ruby_1_9_2/ext/openssl/ossl_pkey_dh.c branches/ruby_1_9_2/ext/openssl/ossl_pkey_dsa.c branches/ruby_1_9_2/ext/openssl/ossl_pkey_ec.c branches/ruby_1_9_2/test/openssl/test_pkey_rsa.rb branches/ruby_1_9_2/version.h Index: ruby_1_9_2/ChangeLog =================================================================== --- ruby_1_9_2/ChangeLog (revision 31795) +++ ruby_1_9_2/ChangeLog (revision 31796) @@ -1,3 +1,12 @@ +Wed Apr 6 15:12:40 2011 NARUSE, Yui <naruse@r...> + + * ext/openssl/ossl_pkey_dh.c (ossl_dh_initialize): + pop pushed error after each try of reading. fixes #4550 + + * ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize): ditto. + + * ext/openssl/ossl_pkey_ec.c (ossl_ec_initialize): ditto. + Wed Apr 6 11:36:44 2011 NARUSE, Yui <naruse@r...> * ext/openssl/ossl_pkey_rsa.c (ossl_rsa_initialize): Index: ruby_1_9_2/ext/openssl/ossl_pkey_dsa.c =================================================================== --- ruby_1_9_2/ext/openssl/ossl_pkey_dsa.c (revision 31795) +++ ruby_1_9_2/ext/openssl/ossl_pkey_dsa.c (revision 31796) @@ -162,22 +162,29 @@ dsa = PEM_read_bio_DSAPrivateKey(in, NULL, ossl_pem_passwd_cb, passwd); if (!dsa) { (void)BIO_reset(in); + (void)ERR_get_error(); dsa = PEM_read_bio_DSAPublicKey(in, NULL, NULL, NULL); } if (!dsa) { (void)BIO_reset(in); + (void)ERR_get_error(); dsa = PEM_read_bio_DSA_PUBKEY(in, NULL, NULL, NULL); } if (!dsa) { (void)BIO_reset(in); + (void)ERR_get_error(); dsa = d2i_DSAPrivateKey_bio(in, NULL); } if (!dsa) { (void)BIO_reset(in); + (void)ERR_get_error(); dsa = d2i_DSA_PUBKEY_bio(in, NULL); } BIO_free(in); - if (!dsa) ossl_raise(eDSAError, "Neither PUB key nor PRIV key:"); + if (!dsa) { + (void)ERR_get_error(); + ossl_raise(eDSAError, "Neither PUB key nor PRIV key:"); + } } if (!EVP_PKEY_assign_DSA(pkey, dsa)) { DSA_free(dsa); Index: ruby_1_9_2/ext/openssl/ossl_pkey_ec.c =================================================================== --- ruby_1_9_2/ext/openssl/ossl_pkey_ec.c (revision 31795) +++ ruby_1_9_2/ext/openssl/ossl_pkey_ec.c (revision 31796) @@ -187,14 +187,17 @@ ec = PEM_read_bio_ECPrivateKey(in, NULL, NULL, NULL); if (!ec) { (void)BIO_reset(in); + (void)ERR_get_error(); ec = PEM_read_bio_EC_PUBKEY(in, NULL, NULL, NULL); } if (!ec) { (void)BIO_reset(in); + (void)ERR_get_error(); ec = d2i_ECPrivateKey_bio(in, NULL); } if (!ec) { (void)BIO_reset(in); + (void)ERR_get_error(); ec = d2i_EC_PUBKEY_bio(in, NULL); } @@ -204,6 +207,7 @@ const char *name = StringValueCStr(arg); int nid = OBJ_sn2nid(name); + (void)ERR_get_error(); if (nid == NID_undef) ossl_raise(eECError, "unknown curve name (%s)\n", name); Index: ruby_1_9_2/ext/openssl/ossl_pkey_dh.c =================================================================== --- ruby_1_9_2/ext/openssl/ossl_pkey_dh.c (revision 31795) +++ ruby_1_9_2/ext/openssl/ossl_pkey_dh.c (revision 31796) @@ -170,10 +170,14 @@ dh = PEM_read_bio_DHparams(in, NULL, NULL, NULL); if (!dh){ (void)BIO_reset(in); + (void)ERR_get_error(); dh = d2i_DHparams_bio(in, NULL); } BIO_free(in); - if (!dh) ossl_raise(eDHError, NULL); + if (!dh) { + (void)ERR_get_error(); + ossl_raise(eDHError, NULL); + } } if (!EVP_PKEY_assign_DH(pkey, dh)) { DH_free(dh); Index: ruby_1_9_2/version.h =================================================================== --- ruby_1_9_2/version.h (revision 31795) +++ ruby_1_9_2/version.h (revision 31796) @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.2" -#define RUBY_PATCHLEVEL 223 +#define RUBY_PATCHLEVEL 224 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 1 Index: ruby_1_9_2/test/openssl/test_pkey_rsa.rb =================================================================== --- ruby_1_9_2/test/openssl/test_pkey_rsa.rb (revision 31795) +++ ruby_1_9_2/test/openssl/test_pkey_rsa.rb (revision 31796) @@ -44,6 +44,13 @@ key4 = OpenSSL::PKey::RSA.new(key3.to_der) assert(!key4.private?) end + + def test_new + key = OpenSSL::PKey::RSA.new 512 + pem = key.public_key.to_pem + OpenSSL::PKey::RSA.new pem + assert_equal([], OpenSSL.errors) + end end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/