summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Legler <a3li@gentoo.org>2009-02-23 14:05:31 +0000
committerAlex Legler <a3li@gentoo.org>2009-02-23 14:05:31 +0000
commitf5eff08fcad44bc0a53b17aedc009b499a47579d (patch)
tree1af3aa99915738a2339d94210dfd6f985ad3d7d3 /dev-lang/ruby/files/ruby-ossl_ocsp-verification.patch
parentSparc stable, security Bug #252576. (diff)
downloadhistorical-f5eff08fcad44bc0a53b17aedc009b499a47579d.tar.gz
historical-f5eff08fcad44bc0a53b17aedc009b499a47579d.tar.bz2
historical-f5eff08fcad44bc0a53b17aedc009b499a47579d.zip
Revbumps fixing bugs 260006, 230748, 258893 and 234877.
Package-Manager: portage-2.2_rc23/cvs/Linux x86_64
Diffstat (limited to 'dev-lang/ruby/files/ruby-ossl_ocsp-verification.patch')
-rw-r--r--dev-lang/ruby/files/ruby-ossl_ocsp-verification.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/dev-lang/ruby/files/ruby-ossl_ocsp-verification.patch b/dev-lang/ruby/files/ruby-ossl_ocsp-verification.patch
new file mode 100644
index 000000000000..2155547ae7e3
--- /dev/null
+++ b/dev-lang/ruby/files/ruby-ossl_ocsp-verification.patch
@@ -0,0 +1,36 @@
+Patch for CVE-2009-0642 from [ruby-core:21762] / Redmine: [Bug #1091]
+
+Ruby 1.8 and 1.9 does not properly check the return value from the
+OCSP_basic_verify function, which might allow remote attackers to
+successfully present an invalid X.509 certificate, possibly
+involving a revoked certificate.
+
+--- trunk/ext/openssl/ossl_ocsp.c 2008/08/31 04:45:44 18975
++++ trunk/ext/openssl/ossl_ocsp.c 2009/02/19 06:39:52 22440
+@@ -593,22 +593,22 @@
+ static VALUE
+ ossl_ocspbres_verify(int argc, VALUE *argv, VALUE self)
+ {
+- VALUE certs, store, flags;
++ VALUE certs, store, flags, result;
+ OCSP_BASICRESP *bs;
+ STACK_OF(X509) *x509s;
+ X509_STORE *x509st;
+- int flg, result;
++ int flg;
+
+ rb_scan_args(argc, argv, "21", &certs, &store, &flags);
+ x509st = GetX509StorePtr(store);
+ flg = NIL_P(flags) ? 0 : INT2NUM(flags);
+ x509s = ossl_x509_ary2sk(certs);
+ GetOCSPBasicRes(self, bs);
+- result = OCSP_basic_verify(bs, x509s, x509st, flg);
++ result = OCSP_basic_verify(bs, x509s, x509st, flg) > 0 ? Qtrue : Qfalse;
+ sk_X509_pop_free(x509s, X509_free);
+ if(!result) rb_warn("%s", ERR_error_string(ERR_peek_error(), NULL));
+
+- return result ? Qtrue : Qfalse;
++ return result;
+ }
+
+ /*