diff --git a/make/hotspot_version b/make/hotspot_version index dc333e8678730b8a81a903dacdac1031390c4966..5c8018485eace48354eb3bf6324b7703301d34cd 100644 --- a/make/hotspot_version +++ b/make/hotspot_version @@ -34,8 +34,8 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2014 HS_MAJOR_VER=25 -HS_MINOR_VER=20 -HS_BUILD_NUMBER=16 +HS_MINOR_VER=25 +HS_BUILD_NUMBER=01 JDK_MAJOR_VER=1 JDK_MINOR_VER=8 diff --git a/src/share/vm/classfile/classFileParser.cpp b/src/share/vm/classfile/classFileParser.cpp index e56f46d868f86cbc215043ab12925c61728c6709..bbfb899d26ddeb54e15fa5ecfc36e2d13396ec83 100644 --- a/src/share/vm/classfile/classFileParser.cpp +++ b/src/share/vm/classfile/classFileParser.cpp @@ -2831,6 +2831,11 @@ void ClassFileParser::parse_classfile_bootstrap_methods_attribute(u4 attribute_b "bootstrap_method_index %u has bad constant type in class file %s", bootstrap_method_index, CHECK); + + guarantee_property((operand_fill_index + 1 + argument_count) < operands->length(), + "Invalid BootstrapMethods num_bootstrap_methods or num_bootstrap_arguments value in class file %s", + CHECK); + operands->at_put(operand_fill_index++, bootstrap_method_index); operands->at_put(operand_fill_index++, argument_count); @@ -2848,7 +2853,6 @@ void ClassFileParser::parse_classfile_bootstrap_methods_attribute(u4 attribute_b } assert(operand_fill_index == operands->length(), "exact fill"); - assert(ConstantPool::operand_array_length(operands) == attribute_array_length, "correct decode"); u1* current_end = cfs->current(); guarantee_property(current_end == current_start + attribute_byte_length, diff --git a/src/share/vm/classfile/verifier.cpp b/src/share/vm/classfile/verifier.cpp index df652522ea73effc65815b00c691f3ebe1cc2095..5b7749611ab255ea99aa9c0eacd00948d0899796 100644 --- a/src/share/vm/classfile/verifier.cpp +++ b/src/share/vm/classfile/verifier.cpp @@ -2315,7 +2315,7 @@ void ClassVerifier::verify_invoke_init( instanceKlassHandle mh(THREAD, m->method_holder()); if (m->is_protected() && !mh->is_same_class_package(_klass())) { bool assignable = current_type().is_assignable_from( - objectref_type, this, CHECK_VERIFY(this)); + objectref_type, this, true, CHECK_VERIFY(this)); if (!assignable) { verify_error(ErrorContext::bad_type(bci, TypeOrigin::cp(new_class_index, objectref_type),