changeset 2733:81ffee9f8143 icedtea-2.5.0

Sync security changes for AArch64 port from 2.4 branch. 2014-03-28 Andrew John Hughes <gnu.andrew@redhat.com> * Makefile.am: (ICEDTEA_PATCHES): Add HotSpot security fixes for AArch64 port. (ICEDTEA_ENV): Set FULL_DEBUG_SYMBOLS=0 in AArch64 build to avoid generating .diz files. * patches/hotspot/aarch64/20140415-8029858-enhance_array_copies.patch, * patches/hotspot/aarch64/20140415-8034926-attribute_classes_properly.patch: HotSpot security fixes for AArch64 port.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Sat, 14 Jun 2014 00:57:51 +0100
parents 15b1fc0169cc
children 76ee7340a65f
files ChangeLog Makefile.am patches/hotspot/aarch64/20140415-8029858-enhance_array_copies.patch patches/hotspot/aarch64/20140415-8034926-attribute_classes_properly.patch
diffstat 4 files changed, 75 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Jun 13 23:06:24 2014 +0100
+++ b/ChangeLog	Sat Jun 14 00:57:51 2014 +0100
@@ -1,3 +1,14 @@
+2014-03-28  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Add HotSpot security fixes for
+	AArch64 port.
+	(ICEDTEA_ENV): Set FULL_DEBUG_SYMBOLS=0 in AArch64
+	build to avoid generating .diz files.
+	* patches/hotspot/aarch64/20140415-8029858-enhance_array_copies.patch,
+	* patches/hotspot/aarch64/20140415-8034926-attribute_classes_properly.patch:
+	HotSpot security fixes for AArch64 port.
+
 2014-06-13  Andrew John Hughes  <gnu.andrew@member.fsf.org>
 
 	PR1848: Removal of project support leaves
--- a/Makefile.am	Fri Jun 13 23:06:24 2014 +0100
+++ b/Makefile.am	Sat Jun 14 00:57:51 2014 +0100
@@ -278,7 +278,9 @@
 endif
 
 if WITH_ALT_HSBUILD
-ICEDTEA_PATCHES += patches/hotspot/aarch64/werror.patch
+ICEDTEA_PATCHES += patches/hotspot/aarch64/werror.patch \
+	patches/hotspot/aarch64/20140415-8029858-enhance_array_copies.patch \
+	patches/hotspot/aarch64/20140415-8034926-attribute_classes_properly.patch
 if ENABLE_SYSTEMTAP
 ICEDTEA_PATCHES += \
 	patches/hotspot/aarch64/systemtap_gc.patch
@@ -579,6 +581,13 @@
        INFINALITY_SUPPORT="true"
 endif
 
+# This seems illogical, but it actually just
+# turns off the creation of separate debuginfo files.
+if WITH_ALT_HSBUILD
+ICEDTEA_ENV += \
+	FULL_DEBUG_SYMBOLS=0
+endif
+
 # OpenJDK boot build environment.
 ICEDTEA_ENV_BOOT = $(ICEDTEA_ENV) \
 	BOOTCLASSPATH_CLS_RT="-bootclasspath $(CLS_DIR_BOOT):$(RUNTIME)" \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/hotspot/aarch64/20140415-8029858-enhance_array_copies.patch	Sat Jun 14 00:57:51 2014 +0100
@@ -0,0 +1,22 @@
+# HG changeset patch
+# User dsimms
+# Date 1389348912 -3600
+#      Fri Jan 10 11:15:12 2014 +0100
+# Node ID b478fbd631095afe8c37e3582c467d3ef64c7ba5
+# Parent  212a8089da498a233d4279e4b50235c271090f71
+8029858: Enhance array copies
+Summary: Just read the source element once
+Reviewed-by: coleenp, ahgross
+
+diff --git a/src/share/vm/oops/objArrayKlass.cpp b/src/share/vm/oops/objArrayKlass.cpp
+--- openjdk/hotspot/src/share/vm/oops/objArrayKlass.cpp
++++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.cpp
+@@ -269,7 +269,7 @@
+         if (element_is_null ||
+             (new_val->klass())->is_subtype_of(bound)) {
+           bs->write_ref_field_pre(p, new_val);
+-          *p = *from;
++          *p = element;
+         } else {
+           // We must do a barrier to cover the partial copy.
+           const size_t pd = pointer_delta(p, dst, (size_t)heapOopSize);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/hotspot/aarch64/20140415-8034926-attribute_classes_properly.patch	Sat Jun 14 00:57:51 2014 +0100
@@ -0,0 +1,32 @@
+# HG changeset patch
+# User hseigel
+# Date 1392921059 18000
+#      Thu Feb 20 13:30:59 2014 -0500
+# Node ID 9b289963cb9a14636fbe8faaa2dd6d3678464a7b
+# Parent  c96a3381e55ebacff49901b98c2ee87e17cb0632
+8034926: Attribute classes properly
+Summary: Add check to prevent underflow
+Reviewed-by: coleenp, ahgross
+
+diff --git a/src/share/vm/classfile/classFileParser.cpp b/src/share/vm/classfile/classFileParser.cpp
+--- openjdk/hotspot/src/share/vm/classfile/classFileParser.cpp
++++ openjdk/hotspot/src/share/vm/classfile/classFileParser.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1997, 2014, 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
+@@ -2777,6 +2777,11 @@
+                      "Short length on BootstrapMethods in class file %s",
+                      CHECK);
+ 
++  guarantee_property(attribute_byte_length > sizeof(u2),
++                     "Invalid BootstrapMethods attribute length %u in class file %s",
++                     attribute_byte_length,
++                     CHECK);
++
+   // The attribute contains a counted array of counted tuples of shorts,
+   // represending bootstrap specifiers:
+   //    length*{bootstrap_method_index, argument_count*{argument_index}}