summaryrefslogtreecommitdiffstats
path: root/luni/src
diff options
context:
space:
mode:
Diffstat (limited to 'luni/src')
-rw-r--r--luni/src/main/java/org/apache/harmony/security/provider/cert/X509CRLImpl.java18
1 files changed, 14 insertions, 4 deletions
diff --git a/luni/src/main/java/org/apache/harmony/security/provider/cert/X509CRLImpl.java b/luni/src/main/java/org/apache/harmony/security/provider/cert/X509CRLImpl.java
index 68ec38a..de5bbfa 100644
--- a/luni/src/main/java/org/apache/harmony/security/provider/cert/X509CRLImpl.java
+++ b/luni/src/main/java/org/apache/harmony/security/provider/cert/X509CRLImpl.java
@@ -297,10 +297,20 @@ public class X509CRLImpl extends X509CRL {
if (entries == null) {
return null;
}
- for (int i=0; i<nonIndirectEntriesSize; i++) {
- X509CRLEntry entry = (X509CRLEntry) entries.get(i);
- if (serialNumber.equals(entry.getSerialNumber())) {
- return entry;
+ if (isIndirectCRL) {
+ for (int i = 0; i < nonIndirectEntriesSize; i++) {
+ X509CRLEntry entry = (X509CRLEntry) entries.get(i);
+ if (serialNumber.equals(entry.getSerialNumber())
+ && entry.getCertificateIssuer() == null) {
+ return entry;
+ }
+ }
+ } else {
+ for (int i = 0; i < entriesSize; i++) {
+ X509CRLEntry entry = (X509CRLEntry) entries.get(i);
+ if (serialNumber.equals(entry.getSerialNumber())) {
+ return entry;
+ }
}
}
return null;