diff --git a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/AbstractExceptionDebugger.java b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/AbstractExceptionDebugger.java index 760017387dd..ffad1f5e22a 100644 --- a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/AbstractExceptionDebugger.java +++ b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/AbstractExceptionDebugger.java @@ -192,6 +192,13 @@ private static boolean sanityCheckSnapshotAssignment( Snapshot snapshot, StackTraceElement[] innerTrace, int currentIdx) { String className = snapshot.getProbe().getLocation().getType(); String methodName = snapshot.getProbe().getLocation().getMethod(); + if (currentIdx < 0 || currentIdx >= innerTrace.length) { + LOGGER.warn( + "currentIdx={} out of bounds of innerTrace array length={}", + currentIdx, + innerTrace.length); + return false; + } if (!className.equals(innerTrace[currentIdx].getClassName()) || !methodName.equals(innerTrace[currentIdx].getMethodName())) { LOGGER.warn("issue when assigning snapshot to frame: {} {}", className, methodName);