From 7ed97d5f6889efd248b25cd55e34863486d7f046 Mon Sep 17 00:00:00 2001 From: jean-philippe bempel Date: Thu, 8 Jan 2026 11:40:14 +0100 Subject: [PATCH] Fix ArrayOutOfBoundsException in ER sanity checks add checks before accessing innerTrace array --- .../debugger/exception/AbstractExceptionDebugger.java | 7 +++++++ 1 file changed, 7 insertions(+) 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);