From e4ba4d62d0af31082a2b12a254a0d74f3fb4e4bb Mon Sep 17 00:00:00 2001 From: Alessandro Gatti Date: Mon, 21 Nov 2022 07:37:16 +0100 Subject: [PATCH] Fix 64 bits Ext4 inode table offset calculation. --- .../src/main/java/ghidra/file/formats/ext4/Ext4Analyzer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/ext4/Ext4Analyzer.java b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/ext4/Ext4Analyzer.java index 54ead1ac16..841a92e621 100644 --- a/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/ext4/Ext4Analyzer.java +++ b/Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/ext4/Ext4Analyzer.java @@ -130,7 +130,7 @@ public class Ext4Analyzer extends FileFormatAnalyzer { monitor.checkCanceled(); long inodeTableBlockOffset = groupDescriptors[i].getBg_inode_table_lo() & 0xffffffffL; if( is64Bit ) { - inodeTableBlockOffset = (groupDescriptors[i].getBg_inode_table_hi() << 32) | inodeTableBlockOffset; + inodeTableBlockOffset = (((long) groupDescriptors[i].getBg_inode_table_hi()) << 32) | inodeTableBlockOffset; } long offset = inodeTableBlockOffset * blockSize; reader.setPointerIndex(offset);