From a5cc81bb305432bae2fe6d007a992ec1ede0b387 Mon Sep 17 00:00:00 2001 From: Brian Carlstrom Date: Wed, 24 Apr 2013 17:12:22 -0700 Subject: Do not set valueDecoded until after the value is decoded Bug: https://code.google.com/p/chromium/issues/detail?id=233610 Bug: 8712523 Change-Id: I976df514e761ffe0d1be1ca8b18e9fe5050c2ba7 --- luni/src/main/java/org/apache/harmony/security/x509/Extension.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luni/src/main/java/org/apache/harmony/security/x509/Extension.java b/luni/src/main/java/org/apache/harmony/security/x509/Extension.java index e5011e8..d9b02f9 100644 --- a/luni/src/main/java/org/apache/harmony/security/x509/Extension.java +++ b/luni/src/main/java/org/apache/harmony/security/x509/Extension.java @@ -99,7 +99,7 @@ public final class Extension { // the decoded extension value protected ExtensionValue extnValueObject; // tells whether extension value has been decoded or not - private boolean valueDecoded = false; + private volatile boolean valueDecoded = false; public Extension(String extnID, boolean critical, ExtensionValue extnValueObject) { @@ -240,7 +240,6 @@ public final class Extension { if (valueDecoded) { return; } - valueDecoded = true; if (Arrays.equals(extnID, SUBJ_KEY_ID)) { extnValueObject = SubjectKeyIdentifier.decode(extnValue); } else if (Arrays.equals(extnID, KEY_USAGE)) { @@ -284,6 +283,7 @@ public final class Extension { } else if (Arrays.equals(extnID, SUBJECT_INFO_ACCESS)) { extnValueObject = InfoAccessSyntax.decode(extnValue); } + valueDecoded = true; } public void dumpValue(StringBuilder sb, String prefix) { -- cgit v1.1