mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-24 00:58:03 +08:00
GP-4357: Fixing FileBytes offset error
This commit is contained in:
+1
-2
@@ -81,8 +81,7 @@ class MemoryBlockSourceInfoDB implements MemoryBlockSourceInfo {
|
||||
@Override
|
||||
public long getFileBytesOffset(Address address) {
|
||||
if (subBlock instanceof FileBytesSubMemoryBlock && contains(address)) {
|
||||
long blockOffset = address.subtract(getMinAddress());
|
||||
long subBlockOffset = blockOffset - subBlock.subBlockOffset;
|
||||
long subBlockOffset = address.subtract(getMinAddress());
|
||||
return ((FileBytesSubMemoryBlock) subBlock).getFileBytesOffset() + subBlockOffset;
|
||||
}
|
||||
return -1;
|
||||
|
||||
+2
-2
@@ -56,7 +56,7 @@ public class MemBlockDBTest extends AbstractGenericTest {
|
||||
txID = handle.startTransaction();
|
||||
|
||||
addressFactory = language.getAddressFactory();
|
||||
AddressMapDB addrMap = (AddressMapDB) program.getAddressMap();
|
||||
AddressMapDB addrMap = program.getAddressMap();
|
||||
Lock lock = new Lock("Test");
|
||||
int openMode = DBConstants.CREATE;
|
||||
mem = new MemoryMapDB(handle, addrMap, openMode, true, lock);
|
||||
@@ -396,7 +396,7 @@ public class MemBlockDBTest extends AbstractGenericTest {
|
||||
|
||||
sourceInfo = sourceInfos.get(1);
|
||||
assertEquals(fileBytes, sourceInfo.getFileBytes().get());
|
||||
assertEquals(70, sourceInfo.getFileBytesOffset());
|
||||
assertEquals(70, sourceInfo.getFileBytesOffset(sourceInfo.getMinAddress()));
|
||||
assertEquals(10, sourceInfo.getLength());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user