mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8036800: Attribute OOM to correct part of code
Checks that the attribute_length does not exceed the length of remaining data in the class file Reviewed-by: coleenp, ahgross
This commit is contained in:
parent
13d9244b49
commit
53685b407a
1 changed files with 7 additions and 5 deletions
|
@ -2798,17 +2798,19 @@ void ClassFileParser::parse_classfile_bootstrap_methods_attribute(u4 attribute_b
|
|||
ClassFileStream* cfs = stream();
|
||||
u1* current_start = cfs->current();
|
||||
|
||||
cfs->guarantee_more(2, CHECK); // length
|
||||
guarantee_property(attribute_byte_length >= sizeof(u2),
|
||||
"Invalid BootstrapMethods attribute length %u in class file %s",
|
||||
attribute_byte_length,
|
||||
CHECK);
|
||||
|
||||
cfs->guarantee_more(attribute_byte_length, CHECK);
|
||||
|
||||
int attribute_array_length = cfs->get_u2_fast();
|
||||
|
||||
guarantee_property(_max_bootstrap_specifier_index < attribute_array_length,
|
||||
"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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue