From 412a185fa1aee55024c97344ed6ac339ef58aaab Mon Sep 17 00:00:00 2001 From: Skylot Date: Tue, 1 May 2018 17:31:44 +0300 Subject: [PATCH] core: fix null pointer error in try/catch processing --- .../visitors/regions/ProcessTryCatchRegions.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessTryCatchRegions.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessTryCatchRegions.java index 7e307593..75551a69 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessTryCatchRegions.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessTryCatchRegions.java @@ -72,10 +72,13 @@ public class ProcessTryCatchRegions extends AbstractRegionVisitor { } BitSet bs = new BitSet(mth.getBasicBlocks().size()); for (ExceptionHandler excHandler : tb.getHandlers()) { - SplitterBlockAttr splitter = excHandler.getHandlerBlock().get(AType.SPLITTER_BLOCK); - if (splitter != null) { - BlockNode block = splitter.getBlock(); - bs.set(block.getId()); + BlockNode handlerBlock = excHandler.getHandlerBlock(); + if (handlerBlock != null) { + SplitterBlockAttr splitter = handlerBlock.get(AType.SPLITTER_BLOCK); + if (splitter != null) { + BlockNode block = splitter.getBlock(); + bs.set(block.getId()); + } } } List domBlocks = BlockUtils.bitSetToBlocks(mth, bs); @@ -164,7 +167,9 @@ public class ProcessTryCatchRegions extends AbstractRegionVisitor { private static boolean isHandlerPath(TryCatchBlock tb, IContainer cont) { for (ExceptionHandler h : tb.getHandlers()) { - if (RegionUtils.hasPathThroughBlock(h.getHandlerBlock(), cont)) { + BlockNode handlerBlock = h.getHandlerBlock(); + if (handlerBlock != null + && RegionUtils.hasPathThroughBlock(handlerBlock, cont)) { return true; } } -- GitLab