Earlier code will trigger NPE if the certificate does not contain the 
extensions or if the requested extensions does not exist. The better approach 
for hardening **getExtensionValue** here is to to check for NULL explicitly 
before calling **getExtensionValue()** and avoding try-catch block which 
ensures the readability and maintainability.

After scanning in multiple places where invokng getExtensions on the 
X509CertInfo reference, the check for NULL is added in the **getKeyUsage()** as 
well while calling before **getExtensionValue()**

The associated tests are written and added in test class 
**CertificateExtensions**. Which will ensure to validate the 
**getExtensionValue()** and **getKeyUsage()** methods in **X509CertImpl** class.

-------------

Commit messages:
 - JDK-8346094 : Harden X509CertImpl.getExtensionValue for NPE cases
 - JDK-8346094 : Harden X509CertImpl.getExtensionValue for NPE cases
 - JDK-8346094 : Harden X509CertImpl.getExtensionValue for NPE cases
 - JDK-8346094 : Harden X509CertImpl.getExtensionValue for NPE cases
 - JDK-8346094 : Harden X509CertImpl.getExtensionValue for NPE cases
 - JDK-8346094 : Harden X509CertImpl.getExtensionValue for NPE cases

Changes: https://git.openjdk.org/jdk/pull/23315/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23315&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8346094
  Stats: 229 lines in 2 files changed: 218 ins; 6 del; 5 mod
  Patch: https://git.openjdk.org/jdk/pull/23315.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23315/head:pull/23315

PR: https://git.openjdk.org/jdk/pull/23315

Reply via email to