From 5388ed57ba910258db9877292fd4df8d66d52ced Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Sat, 19 Jul 2014 20:26:27 -0700 Subject: [PATCH] Fix potential NPE in MethodAnalyzer --- .../main/java/org/jf/dexlib2/analysis/MethodAnalyzer.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/brut.apktool.smali/dexlib2/src/main/java/org/jf/dexlib2/analysis/MethodAnalyzer.java b/brut.apktool.smali/dexlib2/src/main/java/org/jf/dexlib2/analysis/MethodAnalyzer.java index a6e60323..e14fdc31 100644 --- a/brut.apktool.smali/dexlib2/src/main/java/org/jf/dexlib2/analysis/MethodAnalyzer.java +++ b/brut.apktool.smali/dexlib2/src/main/java/org/jf/dexlib2/analysis/MethodAnalyzer.java @@ -1645,11 +1645,14 @@ public class MethodAnalyzer { // methodClass is now the first accessible class found. Now. we need to make sure that the method is // actually valid for this class - resolvedMethod = classPath.getClass(methodClass.getType()).getMethodByVtableIndex(methodIndex); - if (resolvedMethod == null) { + MethodReference newResolvedMethod = + classPath.getClass(methodClass.getType()).getMethodByVtableIndex(methodIndex); + if (newResolvedMethod == null) { + // TODO: fix NPE here throw new ExceptionWithContext("Couldn't find accessible class while resolving method %s", ReferenceUtil.getMethodDescriptor(resolvedMethod, true)); } + resolvedMethod = newResolvedMethod; resolvedMethod = new ImmutableMethodReference(methodClass.getType(), resolvedMethod.getName(), resolvedMethod.getParameterTypes(), resolvedMethod.getReturnType()); }