Compare commits

...

2 Commits

Author SHA1 Message Date
2a24eb5aec Version 3.4.2 2025-11-21 22:15:20 -07:00
Aetias
f7c291bd55 arm: Fix .word reading 4 bytes when less than 4 remain (#285) 2025-11-20 15:38:55 -07:00
5 changed files with 16 additions and 14 deletions

8
Cargo.lock generated
View File

@@ -3491,7 +3491,7 @@ dependencies = [
[[package]]
name = "objdiff-cli"
version = "3.4.1"
version = "3.4.2"
dependencies = [
"anyhow",
"argp",
@@ -3514,7 +3514,7 @@ dependencies = [
[[package]]
name = "objdiff-core"
version = "3.4.1"
version = "3.4.2"
dependencies = [
"anyhow",
"arm-attr",
@@ -3570,7 +3570,7 @@ dependencies = [
[[package]]
name = "objdiff-gui"
version = "3.4.1"
version = "3.4.2"
dependencies = [
"anyhow",
"argp",
@@ -3608,7 +3608,7 @@ dependencies = [
[[package]]
name = "objdiff-wasm"
version = "3.4.1"
version = "3.4.2"
dependencies = [
"log",
"objdiff-core",

View File

@@ -14,7 +14,7 @@ default-members = [
resolver = "3"
[workspace.package]
version = "3.4.1"
version = "3.4.2"
authors = ["Luke Street <luke@street.dev>"]
edition = "2024"
license = "MIT OR Apache-2.0"

View File

@@ -224,12 +224,14 @@ impl Arch for ArchArm {
}
// Check how many bytes we can/should read
let num_code_bytes = if mode == unarm::ParseMode::Data {
// 32-bit .word value should be aligned on a 4-byte boundary, otherwise use .hword
if address & 3 == 0 { 4 } else { 2 }
} else if data.len() >= 4 {
// Read 4 bytes even for Thumb, as the parser will determine if it's a 2 or 4 byte instruction
4
let num_code_bytes = if data.len() >= 4 {
if mode == unarm::ParseMode::Data && address & 3 != 0 {
// 32-bit .word value should be aligned on a 4-byte boundary, otherwise use .hword
2
} else {
// Read 4 bytes even for Thumb, as the parser will determine if it's a 2 or 4 byte instruction
4
}
} else if mode != unarm::ParseMode::Arm {
2
} else {

View File

@@ -1,12 +1,12 @@
{
"name": "objdiff-wasm",
"version": "3.4.1",
"version": "3.4.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "objdiff-wasm",
"version": "3.4.1",
"version": "3.4.2",
"license": "MIT OR Apache-2.0",
"devDependencies": {
"@biomejs/biome": "^1.9.3",

View File

@@ -1,6 +1,6 @@
{
"name": "objdiff-wasm",
"version": "3.4.1",
"version": "3.4.2",
"description": "A local diffing tool for decompilation projects.",
"author": {
"name": "Luke Street",