# HG changeset patch # User Andrew John Hughes # Date 1350451142 -3600 # Node ID ecfaffefd61b71588c1e6a1621ab30dbf05260a6 # Parent 3c80f4c091b50992adec86e7fa0adc8754e14c30 Add 2012/10/16 security updates. 2011-10-17 Andrew John Hughes * Makefile.am: (CORBA_CHANGESET): Update to IcedTea7 2.2 forest head; the tag icedtea-2.2.3. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (HOTSPOT_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (HOTSPOT_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. * patches/boot/ecj-autoboxing.patch: Add additional case in java.lang.invoke.MethodHandleImpl. * patches/boot/ecj-diamond.patch: Add additional case in com.sun.beans.decoder.DocumentHandler. * patches/boot/ecj-stringswitch.patch: Add additional case in java.lang.invoke.MethodHandleNatives. * patches/boot/ecj-trywithresources.patch: Add additional case in java.lang.invoke.MethodHandleImpl. diff -r 3c80f4c091b5 -r ecfaffefd61b ChangeLog --- a/ChangeLog Wed Sep 05 11:38:00 2012 +0200 +++ b/ChangeLog Wed Oct 17 06:19:02 2012 +0100 @@ -1,3 +1,34 @@ +2011-10-17 Andrew John Hughes + + * Makefile.am: + (CORBA_CHANGESET): Update to IcedTea7 2.2 forest head; + the tag icedtea-2.2.3. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (HOTSPOT_CHANGESET): Likewise. + (LANGTOOLS_CHANGESET): Likewise. + (OPENJDK_CHANGESET): Likewise. + (CORBA_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (HOTSPOT_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + * patches/boot/ecj-autoboxing.patch: + Add additional case in + java.lang.invoke.MethodHandleImpl. + * patches/boot/ecj-diamond.patch: + Add additional case in + com.sun.beans.decoder.DocumentHandler. + * patches/boot/ecj-stringswitch.patch: + Add additional case in + java.lang.invoke.MethodHandleNatives. + * patches/boot/ecj-trywithresources.patch: + Add additional case in + java.lang.invoke.MethodHandleImpl. + 2012-09-05 Matthias Klose * configure.ac: Remove the Xp header and library checks. diff -r 3c80f4c091b5 -r ecfaffefd61b Makefile.am --- a/Makefile.am Wed Sep 05 11:38:00 2012 +0200 +++ b/Makefile.am Wed Oct 17 06:19:02 2012 +0100 @@ -4,21 +4,22 @@ JDK_UPDATE_VERSION = 05 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -CORBA_CHANGESET = 64c5506f4a4b -HOTSPOT_CHANGESET = f36619598d31 -JAXP_CHANGESET = d7e1594436a6 -JAXWS_CHANGESET = e029fce63568 -JDK_CHANGESET = 85680f91b6f9 -LANGTOOLS_CHANGESET = f5e3d40e7849 -OPENJDK_CHANGESET = 0fd1b10097bd +CORBA_CHANGESET = 12fee4f9ac22 +HOTSPOT_CHANGESET = 864418cd5667 +JAXP_CHANGESET = dc64245ac19d +JAXWS_CHANGESET = b41293d57940 +JDK_CHANGESET = 4cf358fd012a +LANGTOOLS_CHANGESET = e96efe42e3d5 +OPENJDK_CHANGESET = 32574ae3c2be -CORBA_SHA256SUM = b27f4fb21b5873594661b97a325454ad9448e5cd73864270f5f30c07ca082660 -HOTSPOT_SHA256SUM = 02b3b8e4814ac72140a921c7e08ac8967ae6f6904a9b49476bbc3e098d881153 -JAXP_SHA256SUM = 75bd17a9abfb110bde5950229fb343b16ac13916d78d87631b414cc6fc44d80b -JAXWS_SHA256SUM = 89b6b52b758785d465d1d14c9156872db26e37b5cf13e2b602c28ee9f0e3d56a -JDK_SHA256SUM = ca95c6c0c70f40c472f22d85092d664d77ab32dc4ef0ccc01a4ada937eb208ce -LANGTOOLS_SHA256SUM = 57033a023ed8fd3b6222fe7bcad6a240841af7f700ee03f210b86bde9c13f6e0 -OPENJDK_SHA256SUM = f0caa034ee9377dc6b0bd2d71a9489a89c48088be17938ba69e1167afa68932c +CORBA_SHA256SUM = bf314ffe9993f70ef9a0449b5c540883935b6326e28ee5afdc44f062039e0303 +HOTSPOT_SHA256SUM = 85b0ff446da7f05cd8e2f6902d86fcb109b347db858791e3afcf315ce5ef2942 +JAXP_SHA256SUM = 5003576ed427cae1dda7ccf7c1af042ea8f62ad668e176583a84fba989f77e32 +JAXWS_SHA256SUM = a3bf4ec265fd044a5abce35dfc51b1977826a21bd13abe05a8336f25e8a8dd21 +JDK_SHA256SUM = 5cd45b036269d35ec916e0b99977a87d2a2addefe9aa2058fbc05d0269cd9008 +LANGTOOLS_SHA256SUM = f70752c14ec19fec5fffdb38b3d3aaaefd551ec4dfd109947541b3f4176245a6 +OPENJDK_SHA256SUM = 6a5e1a497c0a309fc17954909ca5890bef15b61e8af877b7a07d0f754d6875a4 +HS21_SHA256SUM = a2a2c610e9ebb97a3c95be233533035cf4f59c4cc45a553ba09e52106fbad113 CACAO_VERSION = a567bcb7f589 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9 diff -r 3c80f4c091b5 -r ecfaffefd61b patches/boot/ecj-autoboxing.patch --- a/patches/boot/ecj-autoboxing.patch Wed Sep 05 11:38:00 2012 +0200 +++ b/patches/boot/ecj-autoboxing.patch Wed Oct 17 06:19:02 2012 +0100 @@ -243,6 +243,15 @@ return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); return fallback.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); } +@@ -1374,7 +1374,7 @@ + MH_checkCallerClass = IMPL_LOOKUP + .findStatic(THIS_CLASS, "checkCallerClass", + MethodType.methodType(boolean.class, Class.class, Class.class)); +- assert((boolean) MH_checkCallerClass.invokeExact(THIS_CLASS, THIS_CLASS)); ++ assert((Boolean) MH_checkCallerClass.invokeExact(THIS_CLASS, THIS_CLASS)); + } catch (Throwable ex) { + throw new InternalError(ex.toString()); + } diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/ToGeneric.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java --- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/ToGeneric.java 2011-06-11 00:38:08.000000000 +0100 +++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/ToGeneric.java 2011-07-12 15:12:13.214932157 +0100 @@ -285,3 +294,6 @@ else return (int) unboxLong(x, false); } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2012-10-17 03:17:03.331299684 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2012-10-17 03:19:49.546110492 +0100 diff -r 3c80f4c091b5 -r ecfaffefd61b patches/boot/ecj-diamond.patch --- a/patches/boot/ecj-diamond.patch Wed Sep 05 11:38:00 2012 +0200 +++ b/patches/boot/ecj-diamond.patch Wed Oct 17 06:19:02 2012 +0100 @@ -6042,6 +6042,23 @@ List threads = new ArrayList(); for (int i = 0; i < threadCount; i++) { RandomCollector r = new RandomCollector(); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2012-10-17 02:42:13.610815469 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2012-10-17 02:43:02.995461481 +0100 +@@ -62,9 +62,10 @@ + */ + public final class DocumentHandler extends DefaultHandler { + private final AccessControlContext acc = AccessController.getContext(); +- private final Map> handlers = new HashMap<>(); +- private final Map environment = new HashMap<>(); +- private final List objects = new ArrayList<>(); ++ private final Map> handlers = ++ new HashMap>(); ++ private final Map environment = new HashMap(); ++ private final List objects = new ArrayList(); + + private Reference loader; + private ExceptionListener listener; diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java --- openjdk-boot.orig/jdk/src/share/classes/sun/security/x509/X509CertImpl.java 2012-06-13 00:23:50.888084888 +0100 +++ openjdk-boot/jdk/src/share/classes/sun/security/x509/X509CertImpl.java 2012-06-13 00:24:25.328561965 +0100 diff -r 3c80f4c091b5 -r ecfaffefd61b patches/boot/ecj-stringswitch.patch --- a/patches/boot/ecj-stringswitch.patch Wed Sep 05 11:38:00 2012 +0200 +++ b/patches/boot/ecj-stringswitch.patch Wed Oct 17 06:19:02 2012 +0100 @@ -301,3 +301,153 @@ } throw new IllegalArgumentException( +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2012-10-17 03:48:53.678554395 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2012-10-17 04:20:20.203700764 +0100 +@@ -411,89 +411,84 @@ + static boolean isCallerSensitive(MemberName mem) { + assert(mem.isInvocable()); + Class defc = mem.getDeclaringClass(); +- switch (mem.getName()) { +- case "doPrivileged": ++ String memName = mem.getName(); ++ if ("doPrivileged".equals(memName)) { + return defc == java.security.AccessController.class; +- case "getUnsafe": ++ } else if ("getUnsafe".equals(memName)) { + return defc == sun.misc.Unsafe.class; +- case "lookup": ++ } else if ("lookup".equals(memName)) { + return defc == java.lang.invoke.MethodHandles.class; +- case "invoke": ++ } else if ("invoke".equals(memName)) { + return defc == java.lang.reflect.Method.class; +- case "get": +- case "getBoolean": +- case "getByte": +- case "getChar": +- case "getShort": +- case "getInt": +- case "getLong": +- case "getFloat": +- case "getDouble": +- case "set": +- case "setBoolean": +- case "setByte": +- case "setChar": +- case "setShort": +- case "setInt": +- case "setLong": +- case "setFloat": +- case "setDouble": ++ } else if ("get".equals(memName) || ++ "getBoolean".equals(memName) || ++ "getByte".equals(memName) || ++ "getChar".equals(memName) || ++ "getShort".equals(memName) || ++ "getInt".equals(memName) || ++ "getFloat".equals(memName) || ++ "getDouble".equals(memName) || ++ "set".equals(memName) || ++ "setBoolean".equals(memName) || ++ "setByte".equals(memName) || ++ "setChar".equals(memName) || ++ "setShort".equals(memName) || ++ "setInt".equals(memName) || ++ "setLong".equals(memName) || ++ "setFloat".equals(memName) || ++ "setDouble".equals(memName)) { + return defc == java.lang.reflect.Field.class; +- case "newInstance": ++ } else if ("newInstance".equals(memName)) { + if (defc == java.lang.reflect.Constructor.class) return true; + if (defc == java.lang.Class.class) return true; +- break; +- case "forName": +- case "getClassLoader": +- case "getClasses": +- case "getFields": +- case "getMethods": +- case "getConstructors": +- case "getDeclaredClasses": +- case "getDeclaredFields": +- case "getDeclaredMethods": +- case "getDeclaredConstructors": +- case "getField": +- case "getMethod": +- case "getConstructor": +- case "getDeclaredField": +- case "getDeclaredMethod": +- case "getDeclaredConstructor": ++ } else if ("forName".equals(memName) || ++ "getClassLoader".equals(memName) || ++ "getClasses".equals(memName) || ++ "getFields".equals(memName) || ++ "getMethods".equals(memName) || ++ "getConstructors".equals(memName) || ++ "getDeclaredClasses".equals(memName) || ++ "getDeclaredFields".equals(memName) || ++ "getDeclaredMethods".equals(memName) || ++ "getDeclaredConstructors".equals(memName) || ++ "getField".equals(memName) || ++ "getMethod".equals(memName) || ++ "getConstructor".equals(memName) || ++ "getDeclaredField".equals(memName) || ++ "getDeclaredMethod".equals(memName) || ++ "getDeclaredConstructor".equals(memName)) { + return defc == java.lang.Class.class; +- case "getConnection": +- case "getDriver": +- case "getDrivers": +- case "deregisterDriver": ++ } else if ("getConnection".equals(memName) || ++ "getDriver".equals(memName) || ++ "getDrivers".equals(memName) || ++ "deregisterDriver".equals(memName)) { + return defc == java.sql.DriverManager.class; +- case "newUpdater": ++ } else if ("newUpdater".equals(memName)) { + if (defc == java.util.concurrent.atomic.AtomicIntegerFieldUpdater.class) return true; + if (defc == java.util.concurrent.atomic.AtomicLongFieldUpdater.class) return true; + if (defc == java.util.concurrent.atomic.AtomicReferenceFieldUpdater.class) return true; +- break; +- case "getContextClassLoader": ++ } else if ("getContextClassLoader".equals(memName)) { + return defc == java.lang.Thread.class; +- case "getPackage": +- case "getPackages": ++ } else if ("getPackage".equals(memName) || ++ "getPackages".equals(memName)) { + return defc == java.lang.Package.class; +- case "getParent": +- case "getSystemClassLoader": ++ } else if ("getParent".equals(memName) || ++ "getSystemClassLoader".equals(memName)) { + return defc == java.lang.ClassLoader.class; +- case "load": +- case "loadLibrary": ++ } else if ("load".equals(memName) || ++ "loadLibrary".equals(memName)) { + if (defc == java.lang.Runtime.class) return true; + if (defc == java.lang.System.class) return true; +- break; +- case "getCallerClass": ++ } else if ("getCallerClass".equals(memName)) { + if (defc == sun.reflect.Reflection.class) return true; + if (defc == java.lang.System.class) return true; +- break; +- case "getCallerClassLoader": ++ } else if ("getCallerClassLoader".equals(memName)) { + return defc == java.lang.ClassLoader.class; +- case "getProxyClass": +- case "newProxyInstance": ++ } else if ("getProxyClass".equals(memName) || ++ "newProxyInstance".equals(memName)) { + return defc == java.lang.reflect.Proxy.class; +- case "getBundle": +- case "clearCache": ++ } else if ("getBundle".equals(memName) || ++ "clearCache".equals(memName)) { + return defc == java.util.ResourceBundle.class; + } + return false; diff -r 3c80f4c091b5 -r ecfaffefd61b patches/boot/ecj-trywithresources.patch --- a/patches/boot/ecj-trywithresources.patch Wed Sep 05 11:38:00 2012 +0200 +++ b/patches/boot/ecj-trywithresources.patch Wed Oct 17 06:19:02 2012 +0100 @@ -1038,3 +1038,23 @@ } catch (IOException x) { } return result; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2012-10-17 03:17:03.331299684 +0100 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2012-10-17 03:18:04.192329905 +0100 +@@ -1401,10 +1401,14 @@ + java.net.URLConnection uconn = tClass.getResource(tResource).openConnection(); + int len = uconn.getContentLength(); + byte[] bytes = new byte[len]; +- try (java.io.InputStream str = uconn.getInputStream()) { ++ java.io.InputStream str = null; ++ try { ++ str = uconn.getInputStream(); + int nr = str.read(bytes); + if (nr != len) throw new java.io.IOException(tResource); +- } ++ } finally { ++ str.close(); ++ } + values[0] = bytes; + } catch (java.io.IOException ex) { + throw new InternalError(ex.toString());