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

View File

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

View File

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

View File

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

View File

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