Skip to content

Commit 2cd1e2e

Browse files
authored
Add missing x64 relocation types (#355)
* Add missing x64 relocation types * Format x86.rs * Update x86.rs
1 parent a6ddc50 commit 2cd1e2e

1 file changed

Lines changed: 23 additions & 2 deletions

File tree

objdiff-core/src/arch/x86.rs

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,14 @@ impl ArchX86 {
8080
},
8181
Architecture::X86_64 => match flags {
8282
RelocationFlags::Coff(typ) => match typ {
83-
pe::IMAGE_REL_AMD64_ADDR32NB | pe::IMAGE_REL_AMD64_REL32 => Some(4),
83+
pe::IMAGE_REL_AMD64_ADDR32NB
84+
| pe::IMAGE_REL_AMD64_REL32
85+
| pe::IMAGE_REL_AMD64_REL32_1
86+
| pe::IMAGE_REL_AMD64_REL32_2
87+
| pe::IMAGE_REL_AMD64_REL32_3
88+
| pe::IMAGE_REL_AMD64_REL32_4
89+
| pe::IMAGE_REL_AMD64_REL32_5
90+
| pe::IMAGE_REL_AMD64_SECREL => Some(4),
8491
pe::IMAGE_REL_AMD64_ADDR64 => Some(8),
8592
_ => None,
8693
},
@@ -300,7 +307,15 @@ impl Arch for ArchX86 {
300307
},
301308
Architecture::X86_64 => match relocation.flags() {
302309
object::RelocationFlags::Coff {
303-
typ: pe::IMAGE_REL_AMD64_ADDR32NB | pe::IMAGE_REL_AMD64_REL32,
310+
typ:
311+
pe::IMAGE_REL_AMD64_ADDR32NB
312+
| pe::IMAGE_REL_AMD64_REL32
313+
| pe::IMAGE_REL_AMD64_REL32_1
314+
| pe::IMAGE_REL_AMD64_REL32_2
315+
| pe::IMAGE_REL_AMD64_REL32_3
316+
| pe::IMAGE_REL_AMD64_REL32_4
317+
| pe::IMAGE_REL_AMD64_REL32_5
318+
| pe::IMAGE_REL_AMD64_SECREL,
304319
}
305320
| object::RelocationFlags::Elf { r_type: elf::R_X86_64_32 | elf::R_X86_64_PC32 } => {
306321
let data =
@@ -343,6 +358,12 @@ impl Arch for ArchX86 {
343358
pe::IMAGE_REL_AMD64_ADDR64 => Some("IMAGE_REL_AMD64_ADDR64"),
344359
pe::IMAGE_REL_AMD64_ADDR32NB => Some("IMAGE_REL_AMD64_ADDR32NB"),
345360
pe::IMAGE_REL_AMD64_REL32 => Some("IMAGE_REL_AMD64_REL32"),
361+
pe::IMAGE_REL_AMD64_REL32_1 => Some("IMAGE_REL_AMD64_REL32_1"),
362+
pe::IMAGE_REL_AMD64_REL32_2 => Some("IMAGE_REL_AMD64_REL32_2"),
363+
pe::IMAGE_REL_AMD64_REL32_3 => Some("IMAGE_REL_AMD64_REL32_3"),
364+
pe::IMAGE_REL_AMD64_REL32_4 => Some("IMAGE_REL_AMD64_REL32_4"),
365+
pe::IMAGE_REL_AMD64_REL32_5 => Some("IMAGE_REL_AMD64_REL32_5"),
366+
pe::IMAGE_REL_AMD64_SECREL => Some("IMAGE_REL_AMD64_SECREL"),
346367
_ => None,
347368
},
348369
_ => None,

0 commit comments

Comments
 (0)