This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-bcel.git
commit b00e5e27606388fb99870877e16b6714c5942c20 Author: Gary David Gregory (Code signing key) <[email protected]> AuthorDate: Mon Nov 21 16:21:52 2022 -0500 org.apache.bcel.classfile.LocalVariableTypeTable constructors now throw ClassFormatException on invalid input --- src/changes/changes.xml | 1 + src/main/java/org/apache/bcel/classfile/LocalVariableTypeTable.java | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 238f3320..ff0da0b4 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -105,6 +105,7 @@ The <action> type attribute can be add,update,fix,remove. <action type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.bcel.classfile.LineNumber constructors now throw ClassFormatException on invalid input.</action> <action type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.bcel.classfile.LocalVariable constructors now throw ClassFormatException on invalid input.</action> <action type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.bcel.classfile.LocalVariableTable constructors now throw ClassFormatException on invalid input.</action> + <action type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.bcel.classfile.LocalVariableTypeTable constructors now throw ClassFormatException on invalid input.</action> <!-- UPDATE --> <action type="update" dev="ggregory" due-to="Gary Gregory">Bump spotbugs-maven-plugin from 4.7.2.2 to 4.7.3.0 #167.</action> <action type="update" dev="ggregory" due-to="Dependabot">Bump jmh.version from 1.35 to 1.36 #170.</action> diff --git a/src/main/java/org/apache/bcel/classfile/LocalVariableTypeTable.java b/src/main/java/org/apache/bcel/classfile/LocalVariableTypeTable.java index 44876696..8a35c6ea 100644 --- a/src/main/java/org/apache/bcel/classfile/LocalVariableTypeTable.java +++ b/src/main/java/org/apache/bcel/classfile/LocalVariableTypeTable.java @@ -25,6 +25,7 @@ import java.util.Iterator; import java.util.stream.Stream; import org.apache.bcel.Const; +import org.apache.bcel.util.Args; // The new table is used when generic types are about... @@ -72,9 +73,10 @@ public class LocalVariableTypeTable extends Attribute implements Iterable<LocalV } } - public LocalVariableTypeTable(final int nameIndex, final int length, final LocalVariable[] localVariableTable, final ConstantPool constantPool) { + public LocalVariableTypeTable(final int nameIndex, final int length, final LocalVariable[] localVariableTypeTable, final ConstantPool constantPool) { super(Const.ATTR_LOCAL_VARIABLE_TYPE_TABLE, nameIndex, length, constantPool); - this.localVariableTypeTable = localVariableTable; + this.localVariableTypeTable = localVariableTypeTable != null ? localVariableTypeTable : LocalVariable.EMPTY_ARRAY; + Args.requireU2(this.localVariableTypeTable.length, "localVariableTypeTable.length"); } public LocalVariableTypeTable(final LocalVariableTypeTable c) {
