From fc59ad6d8ed05de842d7f4f3edf27b00a40746d7 Mon Sep 17 00:00:00 2001 From: Nathan Schulte Date: Sun, 15 Oct 2023 03:13:21 -0500 Subject: [PATCH] CParser: prevent crash when parsing if the trimmed token length is zero, charAt() explodes this is likely a bad macro, but CParser should not crash regardless --- .../src/main/java/ghidra/app/util/cparser/CPP/DefineTable.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/cparser/CPP/DefineTable.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/cparser/CPP/DefineTable.java index 11ece4ed2c..c84c90e05d 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/cparser/CPP/DefineTable.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/cparser/CPP/DefineTable.java @@ -878,10 +878,9 @@ public class DefineTable { pos = startPos; int endParen = strValue.indexOf(')', pos + 1); if (endParen != -1) { - String subStr = strValue.substring(pos + 1, endParen); + String subStr = strValue.substring(pos + 1, endParen).trim(); if (subStr.length() > 0) { int subPos = 0; - subStr = subStr.trim(); boolean isValid = Character.isJavaIdentifierStart(subStr.charAt(0)); while (isValid && subPos < subStr.length()) { char ch = subStr.charAt(subPos++);