Author: markt
Date: Wed Sep 10 21:30:03 2014
New Revision: 1624139
URL: http://svn.apache.org/r1624139
Log:
Some constant types are never used so they can be swallowed which means
returning null. That could trigger an NPE so make sure it doesn't.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java
Modified:
tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java?rev=1624139&r1=1624138&r2=1624139&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java
Wed Sep 10 21:30:03 2014
@@ -49,7 +49,6 @@ public class ConstantPool implements Clo
* @throws ClassFormatException
*/
ConstantPool(DataInputStream file) throws IOException,
ClassFormatException {
- byte tag;
constant_pool_count = file.readUnsignedShort();
constant_pool = new Constant[constant_pool_count];
/* constant_pool[0] is unused by the compiler and may be used freely
@@ -64,9 +63,11 @@ public class ConstantPool implements Clo
*
* Thus we have to increment the index counter.
*/
- tag = constant_pool[i].getTag();
- if ((tag == Constants.CONSTANT_Double) || (tag ==
Constants.CONSTANT_Long)) {
- i++;
+ if (constant_pool[i] != null) {
+ byte tag = constant_pool[i].getTag();
+ if ((tag == Constants.CONSTANT_Double) || (tag ==
Constants.CONSTANT_Long)) {
+ i++;
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]