-
Bug
-
Resolution: Fixed
-
P4
-
11, 17, 21, 22
-
b10
When merging constant pools, if the number of constant pool entries exceeds what fits in a u2, then you can't encode them in bytecodes.
RedefineClasses append_entry doesn't check for u2 overflow.
This code could check for overflow even though the actual merged constant pool could be smaller:
// worst case merged constant pool length is old and new combined
int merge_cp_length = the_class->constants()->length()
+ scratch_class->constants()->length();
RedefineClasses append_entry doesn't check for u2 overflow.
This code could check for overflow even though the actual merged constant pool could be smaller:
// worst case merged constant pool length is old and new combined
int merge_cp_length = the_class->constants()->length()
+ scratch_class->constants()->length();