From 1504fcf6c629974bba11ba87e1ec44c6e3a18170 Mon Sep 17 00:00:00 2001 From: dev747368 <48332326+dev747368@users.noreply.github.com> Date: Tue, 22 Mar 2022 17:49:47 +0000 Subject: [PATCH] GP-1849 Fix infinite loop when importing file with leading tilde in name Fixes #4034. --- .../ghidra/plugin/importer/ImporterDialog.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/plugin/importer/ImporterDialog.java b/Ghidra/Features/Base/src/main/java/ghidra/plugin/importer/ImporterDialog.java index 9c223f6082..e562d828ba 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/plugin/importer/ImporterDialog.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/plugin/importer/ImporterDialog.java @@ -15,13 +15,14 @@ */ package ghidra.plugin.importer; +import java.util.*; +import java.util.List; +import java.util.stream.Collectors; + import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.IOException; -import java.util.*; -import java.util.List; -import java.util.stream.Collectors; import javax.swing.*; import javax.swing.event.DocumentEvent; @@ -529,17 +530,10 @@ public class ImporterDialog extends DialogComponentProvider { private boolean isFilenameTooLong() { int maxNameLen = tool.getProject().getProjectData().getMaxNameLength(); - String fullPath = getName(); - String currentPath = fullPath; - while (!StringUtils.isBlank(currentPath)) { - String filename = FilenameUtils.getName(currentPath); - if (filename.isEmpty()) { - return false; - } - if (filename.length() >= maxNameLen) { + for (String pathPart : getName().split("/")) { + if (pathPart.length() >= maxNameLen) { return true; } - currentPath = FilenameUtils.getFullPathNoEndSeparator(currentPath); } return false; }