From 0ca2789a18403d3a8dc9e742727e339d15096bcf Mon Sep 17 00:00:00 2001 From: Skylot Date: Sat, 11 May 2019 22:34:36 +0300 Subject: [PATCH] fix: prevent stack overflow in type inference if update tree is too deep --- .../jadx/core/dex/visitors/typeinference/TypeUpdate.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/TypeUpdate.java b/jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/TypeUpdate.java index b0c1412cf..794c529c6 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/TypeUpdate.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/TypeUpdate.java @@ -151,6 +151,12 @@ public final class TypeUpdate { return CHANGED; } updateInfo.requestUpdate(arg, candidateType); + if (updateInfo.getUpdates().size() > 500) { + if (Consts.DEBUG) { + LOG.error("Type update error: too deep update tree"); + } + return REJECT; + } try { TypeUpdateResult result = runListeners(updateInfo, arg, candidateType); if (result == REJECT) {