6850783: InvalidityDateExtension returns reference to internal mutable state

Return cloned instead of referenced object

Reviewed-by: weijun
diff --git a/jdk/src/share/classes/sun/security/x509/CertificateVersion.java b/jdk/src/share/classes/sun/security/x509/CertificateVersion.java
index 855586a..fc64599 100644
--- a/jdk/src/share/classes/sun/security/x509/CertificateVersion.java
+++ b/jdk/src/share/classes/sun/security/x509/CertificateVersion.java
@@ -28,7 +28,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.util.Date;
 import java.util.Enumeration;
 
 import sun.security.util.*;
diff --git a/jdk/src/share/classes/sun/security/x509/InvalidityDateExtension.java b/jdk/src/share/classes/sun/security/x509/InvalidityDateExtension.java
index b8a620d..dcaf5f3 100644
--- a/jdk/src/share/classes/sun/security/x509/InvalidityDateExtension.java
+++ b/jdk/src/share/classes/sun/security/x509/InvalidityDateExtension.java
@@ -140,7 +140,11 @@
      */
     public Object get(String name) throws IOException {
         if (name.equalsIgnoreCase(DATE)) {
-            return date;
+            if (date == null) {
+                return null;
+            } else {
+                return (new Date(date.getTime()));    // clone
+            }
         } else {
             throw new IOException
                 ("Name not supported by InvalidityDateExtension");