From c4370fd256207704f9593f1b6f8276430cf7978a Mon Sep 17 00:00:00 2001 From: SuperDude88 <82904174+SuperDude88@users.noreply.github.com> Date: Thu, 27 Jun 2024 20:17:25 -0400 Subject: [PATCH] Ghidra 11.0+ Fix - Make sure "d" exists before we try to use it - Check for length of 1 to actually catch empty strings --- src/main/java/cafeloader/Cafe_ElfExtension.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/cafeloader/Cafe_ElfExtension.java b/src/main/java/cafeloader/Cafe_ElfExtension.java index d614502..77cfcfd 100644 --- a/src/main/java/cafeloader/Cafe_ElfExtension.java +++ b/src/main/java/cafeloader/Cafe_ElfExtension.java @@ -311,11 +311,10 @@ public class Cafe_ElfExtension extends ElfExtension { Address tagAddress = fileInfoAddr.add(tagOffset); while (true) { Data d = elfLoadHelper.createData(tagAddress, TerminatedStringDataType.dataType); - int length = d.getLength(); - if (length == 0) { + if (d == null || d.getLength() <= 1) { // empty string has a length of 1 (just a null terminator) break; } - tagAddress = tagAddress.add(length); + tagAddress = tagAddress.add(d.getLength()); } } catch (AddressOutOfBoundsException e) { }