diff --git a/Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/LocalFileSystem.java b/Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/LocalFileSystem.java index 00b110f2c3..5d79098b2b 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/LocalFileSystem.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/LocalFileSystem.java @@ -124,7 +124,7 @@ public class LocalFileSystem implements GFileSystem, GFileHashProvider { public GFile getGFile(File f) { List parts = LocalFileSystem.getFilePathParts(f); // [/subdir/subroot/file, /subdir/subroot, /subdir, /] GFile current = rootDir; - for (int i = parts.size() - 2; i >= 0; i--) { + for (int i = parts.size() - (isWindows ? 1 : 2); i >= 0; i--) { File part = parts.get(i); FSRL childFSRL = getLocalFSRL(part); current = @@ -221,6 +221,9 @@ public class LocalFileSystem implements GFileSystem, GFileHashProvider { @Override public GFile lookup(String path, Comparator nameComp) throws IOException { + if (path == null || path.equals(rootDir.getPath() /* should be "/" */)) { + return rootDir; + } File f = lookupFile(null, path, nameComp); return f != null ? getGFile(f) : null; }