summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVisual Ehrmanntraut <30368284+VisualEhrmanntraut@users.noreply.github.com>2024-03-08 20:33:57 +0200
committergalenbwill <galenbwill@users.noreply.github.com>2024-03-08 14:33:22 -0500
commitb25a2b9fadddd07cdd85d69264d7be9de16b2537 (patch)
treed16ee7ace7d5e1a3bcaf724b3b4120fbf5d97832
parent626db3c3e52fe7b10d615cf9b19c37aa8602cc59 (diff)
Fix X86_64_RELOC_UNSIGNED not handling external symbols
Signed-off-by: Visual Ehrmanntraut <30368284+VisualEhrmanntraut@users.noreply.github.com>
-rw-r--r--arch/x86/arch_x86.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/x86/arch_x86.cpp b/arch/x86/arch_x86.cpp
index e19fbef0..94cf31d5 100644
--- a/arch/x86/arch_x86.cpp
+++ b/arch/x86/arch_x86.cpp
@@ -4187,14 +4187,11 @@ public:
dest32[0] = dest32[0] + target - (uint32_t)pcRelAddr;
break;
case X86_64_RELOC_UNSIGNED:
- if (!info.external)
+ switch (info.size)
{
- switch (info.size)
- {
- case 4: *dest32 += target - (uint32_t)pcRelAddr; break;
- case 8: *dest64 += info.target - pcRelAddr; break;
- default: break;
- }
+ case 4: *dest32 += target - (uint32_t)pcRelAddr; break;
+ case 8: *dest64 += info.target - pcRelAddr; break;
+ default: break;
}
// TODO rebasing
break;