diff --git a/jode/ChangeLog b/jode/ChangeLog index 07ff754..d18559c 100644 --- a/jode/ChangeLog +++ b/jode/ChangeLog @@ -1,3 +1,12 @@ +2005-09-13 Jochen Hoenicke + + Check for NullPointer in SyntheticAnalyzer. Based on + patch suggessted by Peter Klauser (klp at users.sf.net). + + * jode/jvm/SyntheticAnalyzer.java.in: + (checkStaticAccess): Check refField for null pointer. + (checkAccess): Likewise. + 2005-09-13 Jochen Hoenicke Added patch from Peter Klauser (klp at users.sf.net), to support diff --git a/jode/jode/jvm/SyntheticAnalyzer.java.in b/jode/jode/jvm/SyntheticAnalyzer.java.in index 0eb99d9..656ea47 100644 --- a/jode/jode/jvm/SyntheticAnalyzer.java.in +++ b/jode/jode/jvm/SyntheticAnalyzer.java.in @@ -163,7 +163,8 @@ public class SyntheticAnalyzer implements Opcodes { return false; FieldInfo refField = refClazz.findField(ref.getName(), ref.getType()); - if ((refField.getModifiers() & modifierMask) != Modifier.STATIC) + if (refField == null + || (refField.getModifiers() & modifierMask) != Modifier.STATIC) return false; instr = (Instruction) iter.next(); while (instr.getOpcode() == opc_nop && iter.hasNext()) @@ -208,7 +209,8 @@ public class SyntheticAnalyzer implements Opcodes { return false; FieldInfo refField = refClazz.findField(ref.getName(), ref.getType()); - if ((refField.getModifiers() & modifierMask) != Modifier.STATIC) + if (refField == null + || (refField.getModifiers() & modifierMask) != Modifier.STATIC) return false; instr = (Instruction) iter.next(); while (instr.getOpcode() == opc_nop && iter.hasNext()) @@ -287,7 +289,8 @@ public class SyntheticAnalyzer implements Opcodes { return false; FieldInfo refField = refClazz.findField(ref.getName(), ref.getType()); - if ((refField.getModifiers() & modifierMask) != 0) + if (refField == null + || (refField.getModifiers() & modifierMask) != 0) return false; instr = (Instruction) iter.next(); while (instr.getOpcode() == opc_nop && iter.hasNext()) @@ -332,7 +335,8 @@ public class SyntheticAnalyzer implements Opcodes { return false; FieldInfo refField = refClazz.findField(ref.getName(), ref.getType()); - if ((refField.getModifiers() & modifierMask) != 0) + if (refField == null + || (refField.getModifiers() & modifierMask) != 0) return false; instr = (Instruction) iter.next();