changeset 1440:dd88fdf03bee

Merge jdk7u181-b00
author andrew
date Thu, 19 Apr 2018 17:55:23 +0100
parents 752354294b89 (current diff) fe430a7489a4 (diff)
children 8931f7345917
files .hgtags make/Makefile
diffstat 6 files changed, 118 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Thu Apr 19 04:49:51 2018 +0100
+++ b/.hgtags	Thu Apr 19 17:55:23 2018 +0100
@@ -684,3 +684,4 @@
 04778a2bcd8efc8f2798c16586e432aa45ca66e8 jdk7u171-b02
 4b866e7eb48c28ebe61b3a64f6211ae88ec45ae5 icedtea-2.6.13
 e97826e565405def64c82c7deb36a43c43acf42d icedtea-2.6.14pre01
+0f612c0a7de047b67fae07225826f834b18ce5da jdk7u181-b00
--- a/make/Makefile	Thu Apr 19 04:49:51 2018 +0100
+++ b/make/Makefile	Thu Apr 19 17:55:23 2018 +0100
@@ -136,6 +136,8 @@
 CLASSES_JAR = $(LIB_DIR)/classes.jar
 $(CLASSES_JAR):
 	$(MKDIR) -p $(@D)
+# Avoid including stubs of sun.misc.* classes; real versions are in jdk tree
+	$(RM) -r $(CLASSES_DIR)/sun/misc
 	$(BOOT_JAR_CMD) -cf $@ -C $(CLASSES_DIR) .
 
 #----- src.zip
--- a/src/share/classes/com/sun/corba/se/impl/ior/StubIORImpl.java	Thu Apr 19 04:49:51 2018 +0100
+++ b/src/share/classes/com/sun/corba/se/impl/ior/StubIORImpl.java	Thu Apr 19 17:55:23 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, 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
@@ -31,10 +31,9 @@
 
 package com.sun.corba.se.impl.ior;
 
-import java.io.ObjectInputStream ;
-import java.io.ObjectOutputStream ;
-import java.io.IOException ;
-import java.io.StringWriter ;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import sun.corba.SharedSecrets;
 
 import org.omg.CORBA.ORB ;
 
@@ -125,14 +124,20 @@
     {
         // read the IOR from the ObjectInputStream
         int typeLength = stream.readInt();
+        SharedSecrets.getJavaOISAccess().checkArray(stream, byte[].class, typeLength);
         typeData = new byte[typeLength];
         stream.readFully(typeData);
+
         int numProfiles = stream.readInt();
+        SharedSecrets.getJavaOISAccess().checkArray(stream, int[].class, numProfiles);
+        SharedSecrets.getJavaOISAccess().checkArray(stream, byte[].class, numProfiles);
         profileTags = new int[numProfiles];
         profileData = new byte[numProfiles][];
         for (int i = 0; i < numProfiles; i++) {
             profileTags[i] = stream.readInt();
-            profileData[i] = new byte[stream.readInt()];
+            int dataSize = stream.readInt();
+            SharedSecrets.getJavaOISAccess().checkArray(stream, byte[].class, dataSize);
+            profileData[i] = new byte[dataSize];
             stream.readFully(profileData[i]);
         }
     }
--- a/src/share/classes/sun/corba/SharedSecrets.java	Thu Apr 19 04:49:51 2018 +0100
+++ b/src/share/classes/sun/corba/SharedSecrets.java	Thu Apr 19 17:55:23 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, 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
@@ -26,9 +26,10 @@
 package sun.corba;
 
 import com.sun.corba.se.impl.io.ValueUtility;
+import sun.misc.JavaOISAccess;
 import sun.misc.Unsafe;
 
-import java.security.AccessController;
+import java.lang.reflect.Method;
 
 /** A repository of "shared secrets", which are a mechanism for
     calling implementation-private methods in another package without
@@ -43,6 +44,31 @@
 public class SharedSecrets {
     private static final Unsafe unsafe = Unsafe.getUnsafe();
     private static JavaCorbaAccess javaCorbaAccess;
+    private static final Method getJavaOISAccessMethod;
+    private static JavaOISAccess javaOISAccess;
+
+    // Initialize getJavaOISAccessMethod using reflection.
+    static {
+        try {
+            Class sharedSecret = Class.forName("sun.misc.SharedSecrets");
+            getJavaOISAccessMethod =
+                    sharedSecret.getMethod("getJavaOISAccess");
+        } catch (Exception e) {
+            throw new ExceptionInInitializerError(e);
+        }
+    }
+
+    public static JavaOISAccess getJavaOISAccess() {
+        if (javaOISAccess == null) {
+            try {
+                javaOISAccess =
+                        (JavaOISAccess) getJavaOISAccessMethod.invoke(null);
+            } catch (Exception e) {
+                throw new ExceptionInInitializerError(e);
+            }
+        }
+        return javaOISAccess;
+    }
 
     public static JavaCorbaAccess getJavaCorbaAccess() {
         if (javaCorbaAccess == null) {
@@ -56,5 +82,4 @@
     public static void setJavaCorbaAccess(JavaCorbaAccess access) {
         javaCorbaAccess = access;
     }
-
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/sun/misc/JavaOISAccess.java	Thu Apr 19 17:55:23 2018 +0100
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018, 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+
+package sun.misc;
+
+import java.io.InvalidClassException;
+import java.io.ObjectInputStream;
+
+/*
+ * Skeleton interface added so com.sun.corba.se.impl.ior.StubIORImpl will compile.
+ * JDK implementation will be used at runtime.
+ */
+public interface JavaOISAccess {
+    void setObjectInputFilter(ObjectInputStream stream, ObjectInputFilter filter);
+    ObjectInputFilter getObjectInputFilter(ObjectInputStream stream);
+    void checkArray(ObjectInputStream stream, Class<?> arrayType, int arrayLength)
+        throws InvalidClassException;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/sun/misc/ObjectInputFilter.java	Thu Apr 19 17:55:23 2018 +0100
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2018, 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+
+package sun.misc;
+
+import java.io.InvalidClassException;
+import java.io.ObjectInputStream;
+
+/*
+ * Skeleton interface added so com.sun.corba.se.impl.ior.StubIORImpl will compile.
+ * JDK implementation will be used at runtime.
+ */
+public interface ObjectInputFilter {
+}