Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37430547
en ru br
Репозитории ALT
S:2.1.0-alt2_27jpp11
www.altlinux.org/Changes

Группа :: Разработка/Java
Пакет: jglobus

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: jglobus-remove-synchronization-on-CRL-in-CRLChecker.patch
Скачать


From 50c6015a6918ce4993f78d8094115dc4269f35bd Mon Sep 17 00:00:00 2001
From: Gerd Behrmann <behrmann@gmail.com>
Date: Wed, 3 Jun 2015 00:11:48 +0200
Subject: [PATCH] Remove synchronization on CRL in CRLChecker
Motivation:
Versions of BouncyCastle prior to 1.46 had a race in LazyDERSequence. To
avoid that race, CRLChecker synchronized on the CRL. This leads to lock
contention. After upgrading to BouncyCastle 1.46 this workaround is no
longer needed.
Modification:
Remove the synchronization on the CRL.
Result:
Reduced lock contention leads to higher request throughput.
---
 .../org/globus/gsi/trustmanager/CRLChecker.java   | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)
diff --git a/ssl-proxies/src/main/java/org/globus/gsi/trustmanager/CRLChecker.java b/ssl-proxies/src/main/java/org/globus/gsi/trustmanager/CRLChecker.java
index 43b4886..1d7b39a 100644
--- a/ssl-proxies/src/main/java/org/globus/gsi/trustmanager/CRLChecker.java
+++ b/ssl-proxies/src/main/java/org/globus/gsi/trustmanager/CRLChecker.java
@@ -146,18 +146,9 @@ public class CRLChecker implements CertificateChecker {
             // validate CRL
             verifyCRL(caCert, crl);
 
-            /* One would have thought that a CRL is immutable and thus
-             * thread safe, however inside the ASN1 parse tree we find
-             * LazyDERSequence. LazyDERSequence is parsed lazily and
-             * does so in a non-thread safe manner. One may very well
-             * classify this as a bouncy castle bug, but as a
-             * workaround synchronizing on the CRL solves the problem.
-             */
-            synchronized (crl) {
-                if (crl.isRevoked(cert)) {
-                    throw new CertPathValidatorException(
-                        "Certificate " + cert.getSubjectDN() + " has been revoked");
-                }
+            if (crl.isRevoked(cert)) {
+                throw new CertPathValidatorException(
+                    "Certificate " + cert.getSubjectDN() + " has been revoked");
             }
         }
     }
-- 
2.17.2
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin