diff --git a/8014628-Support-AES-Encryption-with-HMAC-SHA2-for-Ke.patch b/8014628-Support-AES-Encryption-with-HMAC-SHA2-for-Ke.patch index df447e6a35706a27fdfbd2349e2c4258a4914258..35bf76ed7aee33eabb00074d784175fb98be8c27 100644 --- a/8014628-Support-AES-Encryption-with-HMAC-SHA2-for-Ke.patch +++ b/8014628-Support-AES-Encryption-with-HMAC-SHA2-for-Ke.patch @@ -38,13 +38,6 @@ diff --git a/jdk/src/share/classes/javax/security/auth/kerberos/KeyImpl.java b/j index 9d36d1e9e..571387e0c 100644 --- a/jdk/src/share/classes/javax/security/auth/kerberos/KeyImpl.java +++ b/jdk/src/share/classes/javax/security/auth/kerberos/KeyImpl.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2000, 2017, 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 @@ -138,6 +138,12 @@ class KeyImpl implements SecretKey, Destroyable, Serializable { case EncryptedData.ETYPE_AES256_CTS_HMAC_SHA1_96: return "aes256-cts-hmac-sha1-96"; diff --git a/8193682-Infinite-loop-in-ZipOutputStream.close.patch b/8193682-Infinite-loop-in-ZipOutputStream.close.patch index 628b67fbfa20b14d45a40f0494b85819951e10a0..8234cfd7ead5fe3435bee9fa82cb2a0166c29e97 100644 --- a/8193682-Infinite-loop-in-ZipOutputStream.close.patch +++ b/8193682-Infinite-loop-in-ZipOutputStream.close.patch @@ -8,192 +8,6 @@ Subject: 8193682: Infinite loop in ZipOutputStream.close() 4 files changed, 226 insertions(+), 64 deletions(-) create mode 100644 jdk/test/java/util/zip/CloseDeflaterTest.java -diff --git a/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java b/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java -index a1f768cae..f4cf79693 100644 ---- a/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java -+++ b/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java -@@ -235,9 +235,12 @@ class DeflaterOutputStream extends FilterOutputStream { - */ - public void close() throws IOException { - if (!closed) { -- finish(); -- if (usesDefaultDeflater) -- def.end(); -+ try { -+ finish(); -+ } finally { -+ if (usesDefaultDeflater) -+ def.end(); -+ } - out.close(); - closed = true; - } -diff --git a/jdk/src/share/classes/java/util/zip/GZIPOutputStream.java b/jdk/src/share/classes/java/util/zip/GZIPOutputStream.java -index 2c1cd409b..1c3f8592e 100644 ---- a/jdk/src/share/classes/java/util/zip/GZIPOutputStream.java -+++ b/jdk/src/share/classes/java/util/zip/GZIPOutputStream.java -@@ -154,24 +154,30 @@ class GZIPOutputStream extends DeflaterOutputStream { - */ - public void finish() throws IOException { - if (!def.finished()) { -- def.finish(); -- while (!def.finished()) { -- int len = def.deflate(buf, 0, buf.length); -- if (def.finished() && len <= buf.length - TRAILER_SIZE) { -- // last deflater buffer. Fit trailer at the end -- writeTrailer(buf, len); -- len = len + TRAILER_SIZE; -- out.write(buf, 0, len); -- return; -+ try { -+ def.finish(); -+ while (!def.finished()) { -+ int len = def.deflate(buf, 0, buf.length); -+ if (def.finished() && len <= buf.length - TRAILER_SIZE) { -+ // last deflater buffer. Fit trailer at the end -+ writeTrailer(buf, len); -+ len = len + TRAILER_SIZE; -+ out.write(buf, 0, len); -+ return; -+ } -+ if (len > 0) -+ out.write(buf, 0, len); - } -- if (len > 0) -- out.write(buf, 0, len); -+ // if we can't fit the trailer at the end of the last -+ // deflater buffer, we write it separately -+ byte[] trailer = new byte[TRAILER_SIZE]; -+ writeTrailer(trailer, 0); -+ out.write(trailer); -+ } catch (IOException e) { -+ if (usesDefaultDeflater) -+ def.end(); -+ throw e; - } -- // if we can't fit the trailer at the end of the last -- // deflater buffer, we write it separately -- byte[] trailer = new byte[TRAILER_SIZE]; -- writeTrailer(trailer, 0); -- out.write(trailer); - } - } - -diff --git a/jdk/src/share/classes/java/util/zip/ZipOutputStream.java b/jdk/src/share/classes/java/util/zip/ZipOutputStream.java -index 6b480aa1d..f001ddf00 100644 ---- a/jdk/src/share/classes/java/util/zip/ZipOutputStream.java -+++ b/jdk/src/share/classes/java/util/zip/ZipOutputStream.java -@@ -247,59 +247,65 @@ class ZipOutputStream extends DeflaterOutputStream implements ZipConstants { - public void closeEntry() throws IOException { - ensureOpen(); - if (current != null) { -- ZipEntry e = current.entry; -- switch (e.method) { -- case DEFLATED: -- def.finish(); -- while (!def.finished()) { -- deflate(); -- } -- if ((e.flag & 8) == 0) { -- // verify size, compressed size, and crc-32 settings -- if (e.size != def.getBytesRead()) { -- throw new ZipException( -- "invalid entry size (expected " + e.size + -- " but got " + def.getBytesRead() + " bytes)"); -+ try { -+ ZipEntry e = current.entry; -+ switch (e.method) { -+ case DEFLATED: -+ def.finish(); -+ while (!def.finished()) { -+ deflate(); - } -- if (e.csize != def.getBytesWritten()) { -+ if ((e.flag & 8) == 0) { -+ // verify size, compressed size, and crc-32 settings -+ if (e.size != def.getBytesRead()) { -+ throw new ZipException( -+ "invalid entry size (expected " + e.size + -+ " but got " + def.getBytesRead() + " bytes)"); -+ } -+ if (e.csize != def.getBytesWritten()) { -+ throw new ZipException( -+ "invalid entry compressed size (expected " + -+ e.csize + " but got " + def.getBytesWritten() + " bytes)"); -+ } -+ if (e.crc != crc.getValue()) { -+ throw new ZipException( -+ "invalid entry CRC-32 (expected 0x" + -+ Long.toHexString(e.crc) + " but got 0x" + -+ Long.toHexString(crc.getValue()) + ")"); -+ } -+ } else { -+ e.size = def.getBytesRead(); -+ e.csize = def.getBytesWritten(); -+ e.crc = crc.getValue(); -+ writeEXT(e); -+ } -+ def.reset(); -+ written += e.csize; -+ break; -+ case STORED: -+ // we already know that both e.size and e.csize are the same -+ if (e.size != written - locoff) { - throw new ZipException( -- "invalid entry compressed size (expected " + -- e.csize + " but got " + def.getBytesWritten() + " bytes)"); -+ "invalid entry size (expected " + e.size + -+ " but got " + (written - locoff) + " bytes)"); - } - if (e.crc != crc.getValue()) { - throw new ZipException( -- "invalid entry CRC-32 (expected 0x" + -- Long.toHexString(e.crc) + " but got 0x" + -- Long.toHexString(crc.getValue()) + ")"); -+ "invalid entry crc-32 (expected 0x" + -+ Long.toHexString(e.crc) + " but got 0x" + -+ Long.toHexString(crc.getValue()) + ")"); - } -- } else { -- e.size = def.getBytesRead(); -- e.csize = def.getBytesWritten(); -- e.crc = crc.getValue(); -- writeEXT(e); -+ break; -+ default: -+ throw new ZipException("invalid compression method"); - } -- def.reset(); -- written += e.csize; -- break; -- case STORED: -- // we already know that both e.size and e.csize are the same -- if (e.size != written - locoff) { -- throw new ZipException( -- "invalid entry size (expected " + e.size + -- " but got " + (written - locoff) + " bytes)"); -- } -- if (e.crc != crc.getValue()) { -- throw new ZipException( -- "invalid entry crc-32 (expected 0x" + -- Long.toHexString(e.crc) + " but got 0x" + -- Long.toHexString(crc.getValue()) + ")"); -- } -- break; -- default: -- throw new ZipException("invalid compression method"); -+ crc.reset(); -+ current = null; -+ } catch (IOException e) { -+ if (usesDefaultDeflater && !(e instanceof ZipException)) -+ def.end(); -+ throw e; - } -- crc.reset(); -- current = null; - } - } - diff --git a/jdk/test/java/util/zip/CloseDeflaterTest.java b/jdk/test/java/util/zip/CloseDeflaterTest.java new file mode 100644 index 000000000..8aa4960f5 diff --git a/8204947.patch b/8204947.patch index ebee61722021b3922ff72de8ee79306795d920d6..edc2e60ecfb3a14add7b40172001b03e0995e998 100644 --- a/8204947.patch +++ b/8204947.patch @@ -831,15 +831,7 @@ index bc06cac..67ef963 100644 int _n_threads; TaskQueueSetSuper* _queue_set; char _pad_before[DEFAULT_CACHE_LINE_SIZE]; -@@ -634,14 +659,14 @@ public: - // else is. If returns "true", all threads are terminated. If returns - // "false", available work has been observed in one of the task queues, - // so the global task is not complete. -- bool offer_termination() { -+ virtual bool offer_termination() { - return offer_termination(NULL); - } - +@@ -641,7 +666,7 @@ public: // As above, but it also terminates if the should_exit_termination() // method of the terminator parameter returns true. If terminator is // NULL, then it is ignored. diff --git a/8278794-Infinite-loop-in-DeflaterOutputStream.finish.patch b/8278794-Infinite-loop-in-DeflaterOutputStream.finish.patch deleted file mode 100644 index ee61f2742d573c1a6fe7c9a573a1ad2d85ace4fc..0000000000000000000000000000000000000000 --- a/8278794-Infinite-loop-in-DeflaterOutputStream.finish.patch +++ /dev/null @@ -1,238 +0,0 @@ -From e5bf7f105c0066f770f5cdc65f94410d45d11f0f Mon Sep 17 00:00:00 2001 -Subject: 8278794: Infinite loop in DeflaterOutputStream.finish() - ---- - .../share/classes/java/util/zip/Deflater.java | 10 ++ - .../java/util/zip/DeflaterOutputStream.java | 14 +- - .../java/util/zip/ZipOutputStream.java | 4 +- - jdk/test/java/util/zip/CloseDeflaterTest.java | 147 ------------------ - 4 files changed, 22 insertions(+), 153 deletions(-) - delete mode 100644 jdk/test/java/util/zip/CloseDeflaterTest.java - -diff --git a/jdk/src/share/classes/java/util/zip/Deflater.java b/jdk/src/share/classes/java/util/zip/Deflater.java -index 3bb5f9901..bffa397d9 100644 ---- a/jdk/src/share/classes/java/util/zip/Deflater.java -+++ b/jdk/src/share/classes/java/util/zip/Deflater.java -@@ -559,6 +559,16 @@ class Deflater { - throw new NullPointerException("Deflater has been closed"); - } - -+ /** -+ * Returns the value of 'finish' flag. -+ * 'finish' will be set to true if def.finish() method is called. -+ */ -+ boolean shouldFinish() { -+ synchronized (zsRef) { -+ return finish; -+ } -+ } -+ - private static native void initIDs(); - private native static long init(int level, int strategy, boolean nowrap); - private native static void setDictionary(long addr, byte[] b, int off, int len); -diff --git a/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java b/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java -index f4cf79693..c698a0147 100644 ---- a/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java -+++ b/jdk/src/share/classes/java/util/zip/DeflaterOutputStream.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1996, 2022, 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 -@@ -221,9 +221,15 @@ class DeflaterOutputStream extends FilterOutputStream { - */ - public void finish() throws IOException { - if (!def.finished()) { -- def.finish(); -- while (!def.finished()) { -- deflate(); -+ try{ -+ def.finish(); -+ while (!def.finished()) { -+ deflate(); -+ } -+ } catch(IOException e) { -+ if (usesDefaultDeflater) -+ def.end(); -+ throw e; - } - } - } -diff --git a/jdk/src/share/classes/java/util/zip/ZipOutputStream.java b/jdk/src/share/classes/java/util/zip/ZipOutputStream.java -index f001ddf00..cd9194276 100644 ---- a/jdk/src/share/classes/java/util/zip/ZipOutputStream.java -+++ b/jdk/src/share/classes/java/util/zip/ZipOutputStream.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1996, 2022, 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 -@@ -302,7 +302,7 @@ class ZipOutputStream extends DeflaterOutputStream implements ZipConstants { - crc.reset(); - current = null; - } catch (IOException e) { -- if (usesDefaultDeflater && !(e instanceof ZipException)) -+ if (def.shouldFinish() && usesDefaultDeflater && !(e instanceof ZipException)) - def.end(); - throw e; - } -diff --git a/jdk/test/java/util/zip/CloseDeflaterTest.java b/jdk/test/java/util/zip/CloseDeflaterTest.java -deleted file mode 100644 -index 8aa4960f5..000000000 ---- a/jdk/test/java/util/zip/CloseDeflaterTest.java -+++ /dev/null -@@ -1,147 +0,0 @@ --/* -- * Copyright (c) 2021, 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 8193682 -- * @summary Test Infinite loop while writing on closed GZipOutputStream , ZipOutputStream and JarOutputStream. -- * @run testng CloseDeflaterTest -- */ --import java.io.*; --import java.util.Random; --import java.util.jar.JarOutputStream; --import java.util.zip.GZIPOutputStream; --import java.util.zip.ZipOutputStream; --import java.util.zip.ZipEntry; -- --import org.testng.annotations.BeforeTest; --import org.testng.annotations.DataProvider; --import org.testng.annotations.Test; --import static org.testng.Assert.fail; -- -- --public class CloseDeflaterTest { -- -- //number of bytes to write -- private static final int INPUT_LENGTH= 512; -- //OutputStream that will throw an exception during a write operation -- private static OutputStream outStream = new OutputStream() { -- @Override -- public void write(byte[] b, int off, int len) throws IOException { -- //throw exception during write -- throw new IOException(); -- } -- @Override -- public void write(byte b[]) throws IOException {} -- @Override -- public void write(int b) throws IOException {} -- }; -- private static byte[] inputBytes = new byte[INPUT_LENGTH]; -- private static Random rand = new Random(); -- -- @DataProvider(name = "testgzipinput") -- public Object[][] testGZipInput() { -- //testGZip will close the GZipOutputStream using close() method when the boolean -- //useCloseMethod is set to true and finish() method if the value is set to false -- return new Object[][] { -- { GZIPOutputStream.class, true }, -- { GZIPOutputStream.class, false }, -- }; -- } -- -- @DataProvider(name = "testzipjarinput") -- public Object[][] testZipAndJarInput() { -- //testZipAndJarInput will perfrom write/closeEntry operations on JarOutputStream when the boolean -- //useJar is set to true and on ZipOutputStream if the value is set to false -- return new Object[][] { -- { JarOutputStream.class, true }, -- { ZipOutputStream.class, false }, -- }; -- } -- -- @BeforeTest -- public void before_test() -- { -- //add inputBytes array with random bytes to write into Zip -- rand.nextBytes(inputBytes); -- } -- -- //Test for infinite loop by writing bytes to closed GZIPOutputStream -- @Test(dataProvider = "testgzipinput") -- public void testGZip(Class type, boolean useCloseMethod) throws IOException { -- GZIPOutputStream zip = new GZIPOutputStream(outStream); -- try { -- zip.write(inputBytes, 0, INPUT_LENGTH); -- //close zip -- if(useCloseMethod) { -- zip.close(); -- } else { -- zip.finish(); -- } -- } catch (IOException e) { -- //expected -- } -- for (int i = 0; i < 3; i++) { -- try { -- //write on a closed GZIPOutputStream -- zip.write(inputBytes, 0, INPUT_LENGTH); -- fail("Deflater closed exception not thrown"); -- } catch (NullPointerException e) { -- //expected , Deflater has been closed exception -- } -- } -- } -- -- //Test for infinite loop by writing bytes to closed ZipOutputStream/JarOutputStream -- @Test(dataProvider = "testzipjarinput") -- public void testZipCloseEntry(Class type,boolean useJar) throws IOException { -- ZipOutputStream zip = null; -- if(useJar) { -- zip = new JarOutputStream(outStream); -- } else { -- zip = new ZipOutputStream(outStream); -- } -- try { -- zip.putNextEntry(new ZipEntry("")); -- } catch (IOException e) { -- //expected to throw IOException since putNextEntry calls write method -- } -- try { -- zip.write(inputBytes, 0, INPUT_LENGTH); -- //close zip entry -- zip.closeEntry(); -- } catch (IOException e) { -- //expected -- } -- for (int i = 0; i < 3; i++) { -- try { -- //write on a closed ZipOutputStream -- zip.write(inputBytes, 0, INPUT_LENGTH); -- fail("Deflater closed exception not thrown"); -- } catch (NullPointerException e) { -- //expected , Deflater has been closed exception -- } -- } -- } -- --} --- -2.22.0 - diff --git a/8313626-C2-crash-due-to-unexpected-exception-control.patch b/8313626-C2-crash-due-to-unexpected-exception-control.patch index baf3f9465c4eace903145b88c9630016390f4562..ddd5d95abb6ca0f04a42f884ce90192babd3430c 100644 --- a/8313626-C2-crash-due-to-unexpected-exception-control.patch +++ b/8313626-C2-crash-due-to-unexpected-exception-control.patch @@ -9,28 +9,6 @@ Subject: 8313626: C2 crash due to unexpected exception control flow create mode 100644 jdk/test/jdk/jfr/event/compiler/MissingSafepointOnTryCatch.jasm create mode 100644 jdk/test/jdk/jfr/event/compiler/TestMissingSafepointOnTryCatch.java -diff --git a/hotspot/src/share/vm/opto/doCall.cpp b/hotspot/src/share/vm/opto/doCall.cpp -index 1b2b77c71..7a7aba359 100644 ---- a/hotspot/src/share/vm/opto/doCall.cpp -+++ b/hotspot/src/share/vm/opto/doCall.cpp -@@ -892,6 +892,8 @@ void Parse::catch_inline_exceptions(SafePointNode* ex_map) { - tty->print_cr(" Catching every inline exception bci:%d -> handler_bci:%d", bci(), handler_bci); - } - #endif -+ // If this is a backwards branch in the bytecodes, add safepoint -+ maybe_add_safepoint(handler_bci); - merge_exception(handler_bci); // jump to handler - return; // No more handling to be done here! - } -@@ -925,6 +927,8 @@ void Parse::catch_inline_exceptions(SafePointNode* ex_map) { - tty->cr(); - } - #endif -+ // If this is a backwards branch in the bytecodes, add safepoint -+ maybe_add_safepoint(handler_bci); - merge_exception(handler_bci); - } - set_control(not_subtype_ctrl); diff --git a/jdk/test/jdk/jfr/event/compiler/MissingSafepointOnTryCatch.jasm b/jdk/test/jdk/jfr/event/compiler/MissingSafepointOnTryCatch.jasm new file mode 100644 index 000000000..413736e59 diff --git a/Backport-8318889-Backport-Important-Fixed-Issues-in-Later-Ver.patch b/Backport-8318889-Backport-Important-Fixed-Issues-in-Later-Ver.patch index 38c47b873035d7be7f5cb5c5c15c37f0fe687162..59cecc8902f1faf8c1284f0c8ecc82477f308739 100644 --- a/Backport-8318889-Backport-Important-Fixed-Issues-in-Later-Ver.patch +++ b/Backport-8318889-Backport-Important-Fixed-Issues-in-Later-Ver.patch @@ -340,185 +340,6 @@ index ff59c5ecc..8b0c08909 100644 while (length-- > 0) h = 31*h + *s++; return h; -diff --git a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c -index 7e1d8c99d..1cd9e8bdb 100644 ---- a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c -+++ b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c -@@ -1131,6 +1131,10 @@ imageio_skip_input_data(j_decompress_ptr cinfo, long num_bytes) - return; - } - num_bytes += sb->remaining_skip; -+ // Check for overflow if remaining_skip value is too large -+ if (num_bytes < 0) { -+ return; -+ } - sb->remaining_skip = 0; - - /* First the easy case where we are skipping <= the current contents. */ -diff --git a/jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c b/jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c -index cea158e17..2f64d33cc 100644 ---- a/jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c -+++ b/jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c -@@ -406,6 +406,10 @@ sun_jpeg_skip_input_data(j_decompress_ptr cinfo, long num_bytes) - return; - } - num_bytes += src->remaining_skip; -+ // Check for overflow if remaining_skip value is too large -+ if (num_bytes < 0) { -+ return; -+ } - src->remaining_skip = 0; - ret = (int)src->pub.bytes_in_buffer; /* this conversion is safe, because capacity of the buffer is limited by jnit */ - if (ret >= num_bytes) { -diff --git a/jdk/test/javax/sound/midi/File/SMFInterruptedRunningStatus.java b/jdk/test/javax/sound/midi/File/SMFInterruptedRunningStatus.java -new file mode 100644 -index 000000000..1b82e2f73 ---- /dev/null -+++ b/jdk/test/javax/sound/midi/File/SMFInterruptedRunningStatus.java -@@ -0,0 +1,143 @@ -+/* -+ * Copyright (c) 2023, 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. -+ */ -+ -+import java.io.ByteArrayInputStream; -+ -+import javax.sound.midi.MidiSystem; -+import javax.sound.midi.Sequence; -+import javax.sound.midi.Track; -+ -+/** -+ * @test -+ * @bug 8319598 -+ * @summary SMFParser bug with running status, interrupted by Meta or SysEx messages -+ */ -+public class SMFInterruptedRunningStatus { -+ -+ public static void main(String[] args) throws Exception { -+ -+ byte[][] files = new byte[][] {SMF_1, SMF_2, SMF_3}; -+ for (int i = 0; i < files.length; i++) { -+ Sequence seq = MidiSystem.getSequence( -+ new ByteArrayInputStream(files[i])); -+ testSequence(seq, i + 1); -+ } -+ -+ // no exception thrown, all files have been parsed correctly -+ System.out.println("Test passed"); -+ } -+ -+ private static void testSequence(Sequence seq, int fileNumber) { -+ -+ // check number of tracks and number of events -+ Track[] tracks = seq.getTracks(); -+ if (1 != tracks.length) { -+ throw new RuntimeException("file number " -+ + fileNumber + " fails (incorrect number of tracks: " -+ + tracks.length + ")"); -+ } -+ Track track = tracks[0]; -+ if (7 != track.size()) { -+ throw new RuntimeException("file number " + fileNumber -+ + " fails (incorrect number of events: " -+ + track.size() + ")"); -+ } -+ -+ // check status byte of each message -+ int[] expectedStatusBytes = new int[] { -+ 0x90, 0xFF, 0x90, 0x90, 0x90, 0xFF, 0xFF}; -+ for (int i = 0; i < expectedStatusBytes.length; i++) { -+ int expected = expectedStatusBytes[i]; -+ if (expected != track.get(i).getMessage().getStatus()) { -+ throw new RuntimeException("file number " + fileNumber -+ + " fails (wrong status byte in event " + i + ")"); -+ } -+ } -+ } -+ -+ // MIDI file without running status - should work equally before -+ // and after the bugfix -+ private static final byte[] SMF_1 = { -+ 0x4D, 0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06, // file header (start) -+ 0x00, 0x01, 0x00, 0x01, 0x00, (byte) 0x80, // file header (end) -+ 0x4D, 0x54, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x24, // track header -+ 0x00, // delta time -+ (byte) 0x90, 0x3C, 0x7F, // Note-ON (C) -+ 0x40, // delta time -+ (byte) 0xFF, 0x01, 0x04, 0x54, 0x65, 0x73, 0x74, // META (text) -+ 0x20, // delta time -+ (byte) 0x90, 0x3C, 0x00, // Note-OFF (C) -+ 0x20, // delta time -+ (byte) 0x90, 0x3E, 0x7F, // Note-ON (D) -+ 0x60, // delta time -+ (byte) 0x90, 0x3E, 0x00, // Note-OFF (D) -+ 0x20, // delta time -+ (byte) 0xFF, 0x01, 0x04, 0x54, 0x65, 0x73, 0x74, // META (text) -+ 0x00, // delta time -+ (byte) 0xFF, 0x2F, 0x00 // META (end of track) -+ }; -+ -+ // MIDI file with running status, interrupted by a META message -+ // - failed before the bugfix -+ private static final byte[] SMF_2 = { -+ 0x4D, 0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06, // file header (start) -+ 0x00, 0x01, 0x00, 0x01, 0x00, (byte) 0x80, // file header (end) -+ 0x4D, 0x54, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x21, // track header -+ 0x00, // delta time -+ (byte) 0x90, 0x3C, 0x7F, // Note-ON (C) -+ 0x40, // delta time -+ (byte) 0xFF, 0x01, 0x04, 0x54, 0x65, 0x73, 0x74, // META (interruptor) -+ 0x20, // delta time -+ 0x3C, 0x00, // Note-OFF (C) - running status -+ 0x20, // delta time -+ 0x3E, 0x7F, // Note-ON (D) - running status -+ 0x60, // delta time -+ 0x3E, 0x00, // Note-OFF (D) - running status -+ 0x20, // delta time -+ (byte) 0xFF, 0x01, 0x04, 0x54, 0x65, 0x73, 0x74, // META (text) -+ 0x00, // delta time -+ (byte) 0xFF, 0x2F, 0x00 // META (end of track) -+ }; -+ -+ // MIDI file with running status, interrupted by a META message -+ // - succeeded before the bugfix but with wrong interpretation of the data -+ private static final byte[] SMF_3 = { -+ 0x4D, 0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06, // file header (start) -+ 0x00, 0x01, 0x00, 0x01, 0x00, (byte) 0x80, // file header (end) -+ 0x4D, 0x54, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x21, // track header -+ 0x00, // delta time -+ (byte) 0x90, 0x3C, 0x7F, // Note-ON (C) -+ 0x40, // delta time -+ (byte) 0xFF, 0x01, 0x04, 0x54, 0x65, 0x73, 0x74, // META (interruptor) -+ 0x20, // delta time -+ 0x3C, 0x00, // Note-OFF (C) - running status -+ 0x0D, // delta time -+ 0x3E, 0x7F, // Note-ON (D) - running status -+ 0x60, // delta time -+ 0x3E, 0x00, // Note-OFF (D) - running status -+ 0x20, // delta time -+ (byte) 0xFF, 0x01, 0x04, 0x54, 0x65, 0x73, 0x74, // META (text) -+ 0x00, // delta time -+ (byte) 0xFF, 0x2F, 0x00 // META (end of track) -+ }; -+} -- 2.23.0 diff --git a/GCC-12-reports-some-compiler-warnings.patch b/GCC-12-reports-some-compiler-warnings.patch index ef232eaa39e64e7f17c3b3873650655e7df755ff..60c289f0f9a44e8bff745f0cccda3961da40c168 100644 --- a/GCC-12-reports-some-compiler-warnings.patch +++ b/GCC-12-reports-some-compiler-warnings.patch @@ -13,8 +13,8 @@ index 7dde7f096..d122f0eae 100644 WARNINGS_ARE_ERRORS += -Wno-return-type -Wno-empty-body endif --WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value -Wformat=2 -Wreturn-type -+WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value -Wformat=2 -Wreturn-type -Wno-stringop-overflow +-WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value -Wformat=2 -Wreturn-type -Woverloaded-virtual ++WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value -Wformat=2 -Wreturn-type -Woverloaded-virtual -Wno-stringop-overflow ifeq ($(USE_CLANG),) # Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit diff --git a/Huawei-Fix-build-failures-due-to-wrap-in-x86.patch b/Huawei-Fix-build-failures-due-to-wrap-in-x86.patch new file mode 100644 index 0000000000000000000000000000000000000000..b429a74aa5eddb674ca201e4a1b380b9f726b3f4 --- /dev/null +++ b/Huawei-Fix-build-failures-due-to-wrap-in-x86.patch @@ -0,0 +1,40 @@ +Subject: Fix build failures due to wrap in x86 + +--- + hotspot/make/linux/makefiles/adlc.make | 20 +++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/hotspot/make/linux/makefiles/adlc.make b/hotspot/make/linux/makefiles/adlc.make +index a01aa1aaa..92728fbe7 100644 +--- a/hotspot/make/linux/makefiles/adlc.make ++++ b/hotspot/make/linux/makefiles/adlc.make +@@ -70,8 +70,26 @@ CFLAGS_WARN = $(WARNINGS_ARE_ERRORS) + CFLAGS += $(CFLAGS_WARN) + + # Extra flags from gnumake's invocation or environment ++# Adapt wrap for JDK-8281096:Flags introduced by configure script are not passed to ADLC build ++WRAP_STR := -Wl,--wrap ++WRAP_MEM := ,--wrap=memcpy ++WRAP_NULL := ++WRAP_LIBPTHREAD := libpthread.so.0 ++WRAP_LIBDL := libdl.so.2 ++WRAP_LM := -lm ++HOST_LDFLAGS_ADOPT_WRAP := $(HOST_LDFLAGS) ++ ++ifeq ($(findstring --wrap=,$(HOST_LDFLAGS)),--wrap=) ++ HOST_LDFLAGS_ADOPT_WRAP := $(subst $(WRAP_MEM),$(WRAP_NULL),$(HOST_LDFLAGS_ADOPT_WRAP)) ++ HOST_LDFLAGS_ADOPT_WRAP := $(subst $(WRAP_LIBPTHREAD),$(WRAP_NULL),$(HOST_LDFLAGS_ADOPT_WRAP)) ++ HOST_LDFLAGS_ADOPT_WRAP := $(subst $(WRAP_LIBDL),$(WRAP_NULL),$(HOST_LDFLAGS_ADOPT_WRAP)) ++ HOST_LDFLAGS_ADOPT_WRAP := $(subst $(WRAP_LM),$(WRAP_NULL),$(HOST_LDFLAGS_ADOPT_WRAP)) ++ FILTERED_WRAP := $(filter $(WRAP_STR)%,$(HOST_LDFLAGS_ADOPT_WRAP)) ++ HOST_LDFLAGS_ADOPT_WRAP := $(patsubst %$(FILTERED_WRAP),$(WRAP_NULL),$(HOST_LDFLAGS_ADOPT_WRAP)) ++endif ++ + CFLAGS += $(HOST_CFLAGS) +-LFLAGS += $(HOST_CFLAGS) $(HOST_LDFLAGS) ++LFLAGS += $(HOST_CFLAGS) $(HOST_LDFLAGS_ADOPT_WRAP) + ASFLAGS += $(HOST_ASFLAGS) + + OBJECTNAMES = \ +-- +2.37.7 diff --git a/add-missing-test-case.patch b/add-missing-test-case.patch index 6e71d6cb01256f2e8fc579b861751c8500bc7c4f..15e53548f6f9f07f9c6692909c696240a9b44b0d 100644 --- a/add-missing-test-case.patch +++ b/add-missing-test-case.patch @@ -91,7 +91,7 @@ index 00000000..9b614024 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ -+8.412.8.0.13 ++8.432.8.0.13 -- 2.23.0 diff --git a/fix_X509TrustManagerImpl_symantec_distrust.patch b/fix_X509TrustManagerImpl_symantec_distrust.patch index 777cba018c375417c2a84ce8dc20f495af652f24..e0763a50dfa48fd1a658eece230bffccd7e5abea 100644 --- a/fix_X509TrustManagerImpl_symantec_distrust.patch +++ b/fix_X509TrustManagerImpl_symantec_distrust.patch @@ -40,13 +40,13 @@ index 54e1bfa0d..c1423dc5b 100644 // The numbers of certs now. - private static final int COUNT = 83; -+ private static final int COUNT = 104; ++ private static final int COUNT = 106; // SHA-256 of cacerts, can be generated with // shasum -a 256 cacerts | sed -e 's/../&:/g' | tr '[:lower:]' '[:upper:]' | cut -c1-95 private static final String CHECKSUM - = "2D:04:88:6C:52:53:54:EB:38:2D:BC:E0:AF:B7:82:F4:9E:32:A8:1A:1B:A3:AE:CF:25:CB:C2:F6:0F:4E:E1:20"; -+ = "1C:10:89:F9:32:8C:05:D1:10:90:27:7F:66:21:28:71:79:8F:55:44:6C:08:BA:00:48:C0:D4:7A:0D:3B:9C:45"; ++ = "73:5F:49:B0:EC:C0:E4:43:27:B1:5F:D1:9B:A7:8A:05:B4:25:84:A6:81:9F:FC:A7:A7:04:8F:86:82:97:FF:7C"; // map of cert alias to SHA-256 fingerprint @SuppressWarnings("serial") diff --git a/jdk8u-jdk8u422-b05.tar.xz b/jdk8u-jdk8u432-b06.tar.xz similarity index 82% rename from jdk8u-jdk8u422-b05.tar.xz rename to jdk8u-jdk8u432-b06.tar.xz index 3fba88a6361cbf5235899dfc1b8713f5b489101a..a9e47ac65fc5d0f27e07d6a4760acf4666c49c52 100644 Binary files a/jdk8u-jdk8u422-b05.tar.xz and b/jdk8u-jdk8u432-b06.tar.xz differ diff --git a/openjdk-1.8.0.spec b/openjdk-1.8.0.spec index e4135b2c1adf89475894a2c875c239677a1a76f6..753708bad5e3af448f363cd32834efc7190ad079 100644 --- a/openjdk-1.8.0.spec +++ b/openjdk-1.8.0.spec @@ -20,6 +20,8 @@ %bcond_without slowdebug # Enable release builds by default on relevant arches. %bcond_without release +# Disable global LTO +%define _lto_cflags %{nil} # The -g flag says to use strip -g instead of full strip on DSOs or EXEs. # This fixes detailed NMT and other tools which need minimal debug info. @@ -172,13 +174,13 @@ %global origin_nice OpenJDK %global top_level_dir_name %{origin} %global repo jdk8u -%global revision jdk8u422-b05 +%global revision jdk8u432-b06 %global full_revision %{repo}-%{revision} # Define IcedTea version used for SystemTap tapsets and desktop files %global icedteaver 3.15.0 -%global updatever 422 -%global buildver b05 +%global updatever 432 +%global buildver b06 # priority must be 7 digits in total. The expression is workarounding tip %global priority 1800%{updatever} @@ -945,7 +947,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{r Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever}.%{buildver} -Release: 11 +Release: 0 # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -1207,10 +1209,10 @@ Patch301: fix-SUSE-x86_32-build-failure.patch Patch302: fix-the-issue-that-cert-of-geotrustglobalca-expired.patch # 8u372 -Patch303: 8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch -Patch304: jcmd-mnt-add-start-time-and-end-time.patch -Patch305: Fix-localtime_r-not-defined-on-windows.patch -Patch306: 8057743-process-Synchronize-exiting-of-threads-and-p.patch +Patch303: 8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch +Patch304: jcmd-mnt-add-start-time-and-end-time.patch +Patch305: Fix-localtime_r-not-defined-on-windows.patch +Patch306: 8057743-process-Synchronize-exiting-of-threads-and-p.patch Patch307: 8305541-C2-Div-Mod-nodes-without-zero-check-could-be.patch Patch308: 0002-8179498-attach-in-linux-should-be-relative-to-proc-p.patch Patch309: 0003-8187408-AbstractQueuedSynchronizer-wait-queue-corrup.patch @@ -1304,7 +1306,6 @@ Patch403: 8193682-Infinite-loop-in-ZipOutputStream.close.patch Patch404: 8285516-clearPassword-should-be-called-in-a-finally-.patch Patch405: 8148470-Metadata-print-routines-should-not-print-to-.patch Patch406: 8293344-JDK-8242181-broke-stack-printing-for-non-att.patch -Patch407: 8278794-Infinite-loop-in-DeflaterOutputStream.finish.patch Patch408: 8312065-Socket.connect-does-not-timeout-when-profili.patch Patch409: Add-Problemlist.patch Patch410: Fix-an-error-caused-by-anonymous-when-AppCDS-generat.patch @@ -1350,6 +1351,9 @@ Patch446: 8137165-Tests-fail-in-SR_Handler-because-thread-is-n.patch Patch447: heap-dump-redact-support.patch Patch448: KAE-zip-support-streaming-data-decompression.patch Patch449: Enhance-SIGBUS-and-rlimit-information-in-errlog.patch + +#433 +Patch450: Huawei-Fix-build-failures-due-to-wrap-in-x86.patch ############################################# # # Upstreamable patches @@ -1971,7 +1975,6 @@ pushd %{top_level_dir_name} %patch404 -p1 %patch405 -p1 %patch406 -p1 -%patch407 -p1 %patch408 -p1 %patch409 -p1 %patch410 -p1 @@ -2013,6 +2016,7 @@ pushd %{top_level_dir_name} %patch447 -p1 %patch448 -p1 %patch449 -p1 +%patch450 -p1 %endif %ifarch loongarch64 @@ -2274,7 +2278,7 @@ done # Make sure gdb can do a backtrace based on line numbers on libjvm.so # javaCalls.cpp:58 should map to: -# http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/share/vm/runtime/javaCalls.cpp#l58 +# http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/share/vm/runtime/javaCalls.cpp#l58 # Using line number 1 might cause build problems. %ifnarch loongarch64 gdb -q "$JAVA_HOME/bin/java" < -1:1.8.0.432-b05.rolling +- modified 8014628-Support-AES-Encryption-with-HMAC-SHA2-for-Ke.patch +- modified 8193682-Infinite-loop-in-ZipOutputStream.close.patch +- modified 8313626-C2-crash-due-to-unexpected-exception-control.patch +- modified Backport-8318889-Backport-Important-Fixed-Issues-in-Later-Ver.patch +- modified GCC-12-reports-some-compiler-warnings.patch +- modified add-missing-test-case.patch +- modified fix_X509TrustManagerImpl_symantec_distrust.patch +- modified update-cacerts-and-VerifyCACerts.java-test.patch +- deleted 8278794-Infinite-loop-in-DeflaterOutputStream.finish.patch + * Fri Sep 6 2024 Benshuai5D -1:1.8.0.422-b05.11 - add Enhance-SIGBUS-and-rlimit-information-in-errlog.patch @@ -2700,7 +2715,7 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect - fix changelog date error * Tue Aug 6 2024 benshuai5D -1:1.8.0.422-b05.5 -- modified add-Fix-aarch64-runtime-thread-signal-transfer-bug.patch +- modified add-Fix-aarch64-runtime-thread-signal-transfer-bug.patch * Sat Aug 3 2024 kuenking111 -1:1.8.0.422-b05.4 - Add 8137165-Tests-fail-in-SR_Handler-because-thread-is-n.patch @@ -2986,7 +3001,7 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect - 0055-Fix-CodelistTest.java-Failed-to-Execute-CodelistTest.patch * Thu May 11 2023 crash888 - 1:1.8.0.372-b07.1 -- modified Fix-the-crash-that-occurs-when-the-process-exits-due.patch +- modified Fix-the-crash-that-occurs-when-the-process-exits-due.patch * Sat May 6 2023 crash888 - 1:1.8.0.372-b07.0 - deleted Add-ability-to-configure-third-port-for-remote-JMX.patch @@ -3004,10 +3019,10 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect - modified add-missing-test-case.patch - modified fix-the-issue-that-cert-of-geotrustglobalca-expired.patch - modified fix_X509TrustManagerImpl_symantec_distrust.patch -- add 8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch -- add jcmd-mnt-add-start-time-and-end-time.patch -- add Fix-localtime_r-not-defined-on-windows.patch -- add 8057743-process-Synchronize-exiting-of-threads-and-p.patch +- add 8074354-Make-CreateMinidumpOnCrash-a-new-name-and-av.patch +- add jcmd-mnt-add-start-time-and-end-time.patch +- add Fix-localtime_r-not-defined-on-windows.patch +- add 8057743-process-Synchronize-exiting-of-threads-and-p.patch - add 8305541-C2-Div-Mod-nodes-without-zero-check-could-be.patch - upgrade to jdk8u372-b07 @@ -3211,7 +3226,7 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect - modified implementation_of_Blas_hotspot_function_in_Intrinsics.patch * Tue Feb 15 2022 eapen - 1:1.8.0.322-b06.1 -- fix makes failure when gcc version is lower than 8 +- fix makes failure when gcc version is lower than 8 * Thu Feb 10 2022 eapen - 1:1.8.0.322-b06.0 - upgrade to 8u322-b06(ga) @@ -3487,7 +3502,7 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect * Tue Nov 10 2020 ow_wo - 1:1.8.0.272-b10.6 - add 8236512-PKCS11-Connection-closed-after-Cipher.doFinal-and-NoPadding.patch -- add 8250861-Crash-in-MinINode-Ideal-PhaseGVN-bool.patch +- add 8250861-Crash-in-MinINode-Ideal-PhaseGVN-bool.patch * Mon Nov 09 2020 ow_wo - 1:1.8.0.272-b10.5 - add 8223940-Private-key-not-supported-by-chosen-signature.patch @@ -3565,7 +3580,7 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect - Add Ddot-intrinsic-implement.patch - Add 8234003-Improve-IndexSet-iteration.patch - Add 8220159-Optimize-various-RegMask-operations-by-introducing-watermarks.patch -- Remove prohibition-of-irreducible-loop-in-mergers.patch +- Remove prohibition-of-irreducible-loop-in-mergers.patch * Tue Aug 25 2020 noah - 1:1.8.0.265-b10.0 - Update to aarch64-shenandoah-jdk8u-8u265-b01 diff --git a/update-cacerts-and-VerifyCACerts.java-test.patch b/update-cacerts-and-VerifyCACerts.java-test.patch index 3bcc6f44392f5b2669c39d87c37b3b43ebcd0dfc..c49e9f2d22ffdff2bbedfbaa792191322a5a2438 100644 --- a/update-cacerts-and-VerifyCACerts.java-test.patch +++ b/update-cacerts-and-VerifyCACerts.java-test.patch @@ -257,13 +257,13 @@ index dd107fc..791ddb6 100644 + File.separator + "security" + File.separator + "cacerts"; // The numbers of certs now. -- private static final int COUNT = 110; +- private static final int COUNT = 112; + private static final int COUNT = 83; // SHA-256 of cacerts, can be generated with // shasum -a 256 cacerts | sed -e 's/../&:/g' | tr '[:lower:]' '[:upper:]' | cut -c1-95 private static final String CHECKSUM -- = "C1:68:B4:AC:51:BF:B5:C6:FD:20:69:17:E1:AF:E4:5B:01:9B:AA:3F:C3:9A:80:A8:51:53:74:2C:A2:04:B0:FF"; +- = "8F:E0:6F:7F:21:59:33:A6:43:F3:48:FD:A3:4A:8E:28:35:AA:DD:6E:A5:43:56:F1:28:34:48:DF:5C:D2:7C:72"; + = "2D:04:88:6C:52:53:54:EB:38:2D:BC:E0:AF:B7:82:F4:9E:32:A8:1A:1B:A3:AE:CF:25:CB:C2:F6:0F:4E:E1:20"; // map of cert alias to SHA-256 fingerprint