OpenJDK / jdk / jdk
changeset 57188:9eaef94e74b5
Merge
author | psadhukhan |
---|---|
date | Tue, 03 Dec 2019 12:42:20 +0530 |
parents | 8991f75a1409 37434b8a1e8e |
children | 90f3ea9785d5 8081bf6f4309 |
files | |
diffstat | 3 files changed, 74 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/hotspot/share/prims/jvmtiImpl.hpp Tue Dec 03 11:52:31 2019 +0530 +++ b/src/hotspot/share/prims/jvmtiImpl.hpp Tue Dec 03 12:42:20 2019 +0530 @@ -482,9 +482,9 @@ // Actually posts the event. void post() NOT_JVMTI_RETURN; // Sweeper support to keep nmethods from being zombied while in the queue. - void nmethods_do(CodeBlobClosure* cf); + void nmethods_do(CodeBlobClosure* cf) NOT_JVMTI_RETURN; // GC support to keep nmethod from being unloaded while in the queue. - void oops_do(OopClosure* f, CodeBlobClosure* cf); + void oops_do(OopClosure* f, CodeBlobClosure* cf) NOT_JVMTI_RETURN; }; /** @@ -519,9 +519,9 @@ static void enqueue(const JvmtiDeferredEvent& event) NOT_JVMTI_RETURN; static JvmtiDeferredEvent dequeue() NOT_JVMTI_RETURN_(JvmtiDeferredEvent()); // Sweeper support to keep nmethods from being zombied while in the queue. - static void nmethods_do(CodeBlobClosure* cf); + static void nmethods_do(CodeBlobClosure* cf) NOT_JVMTI_RETURN; // GC support to keep nmethod from being unloaded while in the queue. - static void oops_do(OopClosure* f, CodeBlobClosure* cf); + static void oops_do(OopClosure* f, CodeBlobClosure* cf) NOT_JVMTI_RETURN; }; // Utility macro that checks for NULL pointers:
--- a/src/java.base/share/classes/sun/security/util/KeyStoreDelegator.java Tue Dec 03 11:52:31 2019 +0530 +++ b/src/java.base/share/classes/sun/security/util/KeyStoreDelegator.java Tue Dec 03 12:42:20 2019 +0530 @@ -217,9 +217,9 @@ try { @SuppressWarnings("deprecation") KeyStoreSpi tmp = primaryKeyStore.newInstance(); + tmp.engineLoad(bufferedStream, password); keystore = tmp; type = primaryType; - keystore.engineLoad(bufferedStream, password); } catch (Exception e) { @@ -236,11 +236,11 @@ } @SuppressWarnings("deprecation") - KeyStoreSpi tmp= secondaryKeyStore.newInstance(); + KeyStoreSpi tmp = secondaryKeyStore.newInstance(); + bufferedStream.reset(); + tmp.engineLoad(bufferedStream, password); keystore = tmp; type = secondaryType; - bufferedStream.reset(); - keystore.engineLoad(bufferedStream, password); if (debug != null) { debug.println("WARNING: switching from " +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jdk/sun/security/provider/KeyStore/WrongStoreType.java Tue Dec 03 12:42:20 2019 +0530 @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8234744 + * @summary KeyStore.store can write wrong type of file + */ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.security.KeyStore; + +public class WrongStoreType { + public static void main(String ... args) throws Exception { + + char[] password = "changeit".toCharArray(); + KeyStore ks = KeyStore.getInstance("PKCS12"); + + ks.load(null, null); + System.out.println(ks.getType()); + + Files.createFile(Path.of("emptyfile")); + try (InputStream in = new FileInputStream("emptyfile")) { + ks.load(in, password); + } catch (Exception e) { + System.out.println(e); + } + + System.out.println(ks.getType()); + try (OutputStream out = new FileOutputStream("newfile")) { + ks.store(out, password); + } + + ks = KeyStore.getInstance(new File("newfile"), password); + String type = ks.getType(); + if (!type.equalsIgnoreCase("PKCS12")) { + throw new Exception("see storetype " + type); + } + } +}