Compare commits

...

20 Commits

Author SHA1 Message Date
Eric Kilmer 9a983d5a01 Ghidra 11.3 (#319) 2025-03-03 19:26:50 -05:00
Eric Kilmer fbec9dee2b Bump Ghidra HEAD commit 5a3a8c36c (#318)
Changed files:

```
M       Ghidra/Features/Decompiler/src/decompile/cpp/heritage.cc
M       Ghidra/Processors/x86/data/languages/avx512.sinc
M       Ghidra/Processors/x86/data/languages/avx512_manual.sinc
```
2025-03-03 18:33:29 -05:00
Eric Kilmer aeea2f6d2e ci: Ignore java file in file update listing 2025-02-09 17:09:58 -05:00
Eric Kilmer e83ec16d28 Bump Ghidra HEAD commit 2ec84c2fb
Changed files:

```
M       Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_block.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_op.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_translate.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_translate.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/pcoderaw.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/pcoderaw.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/rulecompile.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/sleighbase.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/sleighbase.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/translate.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/translate.hh
M       Ghidra/Features/Decompiler/src/decompile/unittests/testmarshal.cc
M       Ghidra/Processors/ARM/data/languages/ARMneon.sinc
M       Ghidra/Processors/x86/data/languages/avx.sinc
M       Ghidra/Processors/x86/data/languages/avx512.sinc
M       Ghidra/Processors/x86/data/languages/avx512_manual.sinc
M       Ghidra/Processors/x86/data/languages/cet.sinc
M       Ghidra/Processors/x86/data/languages/ia.sinc
M       Ghidra/Processors/x86/data/languages/x86.ldefs
```
2025-02-09 16:48:44 -05:00
Eric Kilmer 52c4f0db49 Bump Ghidra HEAD commit bb4853e41
Changed files:

```
M       Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/heritage.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.hh
```
2025-02-09 16:43:20 -05:00
Eric Kilmer ab92d51452 Bump Ghidra HEAD commit 213825064
Changed files:

```
M       Ghidra/Features/Decompiler/src/decompile/build.gradle
M       Ghidra/Features/Decompiler/src/decompile/cpp/cast.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/constseq.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/constseq.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_op.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/printc.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/subflow.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/subflow.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/variable.cc
A       Ghidra/Features/Decompiler/src/decompile/datatests/concatsplit.xml
```
2025-02-09 16:40:40 -05:00
Eric Kilmer 5de8b6c8d6 Bump Ghidra HEAD commit cfffcf0c1 (#314)
Changed files:

```
M       Ghidra/Processors/Toy/data/languages/toy.sinc
M       Ghidra/Processors/Toy/data/languages/toyInstructions.sinc
```
2025-02-09 21:40:14 +00:00
Eric Kilmer 91ab01ad36 Bump Ghidra HEAD commit 860c75448 (#313)
Changed files:

```
M       Ghidra/Processors/AARCH64/data/languages/AARCH64_golang.register.info
M       Ghidra/Processors/x86/data/languages/x86-64-golang.register.info
```
2025-02-09 16:23:36 -05:00
Eric Kilmer db074738f1 Bump Ghidra HEAD commit 14527b015 (#310)
Changed files:

```
M       Ghidra/Features/Decompiler/src/decompile/cpp/constseq.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_op.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/subflow.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/varnode.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/varnode.hh
```
2025-02-09 15:48:56 -05:00
Eric Kilmer ca9534df0c Bump Ghidra HEAD commit b69e48765 (#309)
Changed files:

```
M       Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.hh
M       Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430.cspec
```
2025-02-09 15:30:18 -05:00
Eric Kilmer 2e03227e87 Update Ghidra HEAD to commit ec59e407b (#308)
Bump Ghidra HEAD commit ec59e407b

Changed files:

```
M       Ghidra/Features/Decompiler/src/decompile/cpp/condexe.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/condexe.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_block.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_op.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/op.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M       Ghidra/Features/Decompiler/src/decompile/cpp/subflow.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/varnode.cc
M       Ghidra/Features/Decompiler/src/decompile/cpp/varnode.hh
A       Ghidra/Features/Decompiler/src/decompile/datatests/ccmp.xml
M       Ghidra/Processors/68000/data/languages/68000.ldefs
M       Ghidra/Processors/AARCH64/data/languages/AARCH64.ldefs
M       Ghidra/Processors/AARCH64/data/languages/AARCH64_swift.cspec
M       Ghidra/Processors/ARM/data/languages/ARM.ldefs
M       Ghidra/Processors/Loongarch/data/languages/loongarch.ldefs
M       Ghidra/Processors/MIPS/data/languages/mips.ldefs
M       Ghidra/Processors/PowerPC/data/languages/ppc.ldefs
M       Ghidra/Processors/RISCV/data/languages/riscv.ldefs
M       Ghidra/Processors/Sparc/data/languages/SparcV9.ldefs
M       Ghidra/Processors/SuperH4/data/languages/SuperH4.ldefs
M       Ghidra/Processors/Xtensa/data/languages/xtensa.ldefs
M       Ghidra/Processors/x86/data/languages/x86-64-swift.cspec
M       Ghidra/Processors/x86/data/languages/x86.ldefs
```
2025-02-09 15:01:55 -05:00
Eric Kilmer bcb4ff6f4a Update ghidra HEAD to commit 2333ab611
* cron/update-ghidra-2333ab611:
  Fix Windows Debug build with patch for strict weak ordering
  Rework and regenerate patches
  Bump Ghidra HEAD commit 2333ab611
2025-02-09 14:23:39 -05:00
Eric Kilmer ac55146b2c Fix Windows Debug build with patch for strict weak ordering 2025-02-08 20:38:54 -05:00
Eric Kilmer 35fbbf873e Rework and regenerate patches
Only modified ruleaction.cc in 0001-Fix-UBSAN-errors-in-decompiler.patch
2025-02-08 20:38:54 -05:00
pgoodman 014530d317 Bump Ghidra HEAD commit 2333ab611
Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/constseq.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/constseq.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/enum.xml
M	Ghidra/Features/Decompiler/src/decompile/datatests/heapstring.xml
M	Ghidra/Features/Decompiler/src/decompile/unittests/testtypes.cc
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.opinion
M	Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430.cspec
```
2025-02-08 20:38:54 -05:00
Eric Kilmer 4d8bdb54a3 auto-update use Python version 3.10 in CI 2025-02-06 13:42:12 -05:00
dependabot[bot] 364b5e4ff9 build(deps): bump softprops/action-gh-release from 2.2.0 to 2.2.1 (#306)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2.2.0...v2.2.1)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 11:33:10 -05:00
dependabot[bot] 4519d754ab build(deps): bump softprops/action-gh-release from 2.1.0 to 2.2.0 (#305)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-11 08:57:30 -05:00
dependabot[bot] 6db8a80488 build(deps): bump softprops/action-gh-release from 2.0.9 to 2.1.0 (#302)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.9 to 2.1.0.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2.0.9...v2.1.0)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-12 09:11:59 -05:00
auto-updater[bot] 39f087356c Update Ghidra HEAD to commit 30ef757d8 (#301)
Bump Ghidra HEAD commit 30ef757d8

Changed files:

```
A	Ghidra/Processors/6502/README.md
M	Ghidra/Processors/6502/certification.manifest
A	Ghidra/Processors/68000/README.md
M	Ghidra/Processors/68000/certification.manifest
A	Ghidra/Processors/8048/README.md
M	Ghidra/Processors/8048/certification.manifest
A	Ghidra/Processors/8051/README.md
M	Ghidra/Processors/8051/certification.manifest
A	Ghidra/Processors/8085/README.md
M	Ghidra/Processors/8085/certification.manifest
A	Ghidra/Processors/AARCH64/README.md
M	Ghidra/Processors/AARCH64/certification.manifest
A	Ghidra/Processors/ARM/README.md
M	Ghidra/Processors/ARM/certification.manifest
A	Ghidra/Processors/Atmel/README.md
M	Ghidra/Processors/Atmel/certification.manifest
A	Ghidra/Processors/BPF/README.md
M	Ghidra/Processors/BPF/certification.manifest
A	Ghidra/Processors/CP1600/README.md
M	Ghidra/Processors/CP1600/certification.manifest
A	Ghidra/Processors/CR16/README.md
M	Ghidra/Processors/CR16/certification.manifest
A	Ghidra/Processors/DATA/README.md
M	Ghidra/Processors/DATA/certification.manifest
A	Ghidra/Processors/Dalvik/README.md
M	Ghidra/Processors/Dalvik/certification.manifest
A	Ghidra/Processors/HCS08/README.md
M	Ghidra/Processors/HCS08/certification.manifest
A	Ghidra/Processors/HCS12/README.md
M	Ghidra/Processors/HCS12/certification.manifest
A	Ghidra/Processors/JVM/README.md
M	Ghidra/Processors/JVM/certification.manifest
A	Ghidra/Processors/Loongarch/README.md
M	Ghidra/Processors/Loongarch/certification.manifest
A	Ghidra/Processors/M16C/README.md
M	Ghidra/Processors/M16C/certification.manifest
A	Ghidra/Processors/M8C/README.md
M	Ghidra/Processors/M8C/certification.manifest
A	Ghidra/Processors/MC6800/README.md
M	Ghidra/Processors/MC6800/certification.manifest
A	Ghidra/Processors/MCS96/README.md
M	Ghidra/Processors/MCS96/certification.manifest
A	Ghidra/Processors/MIPS/README.md
M	Ghidra/Processors/MIPS/certification.manifest
A	Ghidra/Processors/PA-RISC/README.md
M	Ghidra/Processors/PA-RISC/certification.manifest
A	Ghidra/Processors/PIC/README.md
M	Ghidra/Processors/PIC/certification.manifest
A	Ghidra/Processors/PowerPC/README.md
M	Ghidra/Processors/PowerPC/certification.manifest
A	Ghidra/Processors/RISCV/README.md
M	Ghidra/Processors/RISCV/certification.manifest
A	Ghidra/Processors/Sparc/README.md
M	Ghidra/Processors/Sparc/certification.manifest
A	Ghidra/Processors/SuperH/README.md
M	Ghidra/Processors/SuperH/certification.manifest
A	Ghidra/Processors/SuperH4/README.md
M	Ghidra/Processors/SuperH4/certification.manifest
A	Ghidra/Processors/TI_MSP430/README.md
M	Ghidra/Processors/TI_MSP430/certification.manifest
A	Ghidra/Processors/Toy/README.md
M	Ghidra/Processors/Toy/certification.manifest
A	Ghidra/Processors/V850/README.md
M	Ghidra/Processors/V850/certification.manifest
A	Ghidra/Processors/Xtensa/README.md
M	Ghidra/Processors/Xtensa/certification.manifest
A	Ghidra/Processors/Z80/README.md
M	Ghidra/Processors/Z80/certification.manifest
A	Ghidra/Processors/eBPF/README.md
M	Ghidra/Processors/eBPF/certification.manifest
A	Ghidra/Processors/tricore/README.md
M	Ghidra/Processors/tricore/certification.manifest
A	Ghidra/Processors/x86/README.md
M	Ghidra/Processors/x86/certification.manifest
```

Co-authored-by: pgoodman <43664+pgoodman@users.noreply.github.com>
2024-11-11 11:08:50 -05:00
17 changed files with 110 additions and 108 deletions
+3 -3
View File
@@ -217,7 +217,7 @@ jobs:
path: ${{ env.DEB_PACKAGE_PATH }}
- name: Release DEB package artifact (RelWithDebInfo only)
uses: softprops/action-gh-release@v2.0.9
uses: softprops/action-gh-release@v2.2.1
if: matrix.build_type == 'RelWithDebInfo' && runner.os == 'Linux' && startsWith(github.ref, 'refs/tags/') && matrix.release == 'stable'
with:
files: ${{ env.DEB_PACKAGE_PATH }}
@@ -230,7 +230,7 @@ jobs:
name: ${{ env.RPM_PACKAGE_NAME }}
path: ${{ env.RPM_PACKAGE_PATH }}
- name: Release RPM package artifact (RelWithDebInfo only)
uses: softprops/action-gh-release@v2.0.9
uses: softprops/action-gh-release@v2.2.1
if: matrix.build_type == 'RelWithDebInfo' && runner.os == 'Linux' && startsWith(github.ref, 'refs/tags/') && matrix.release == 'stable'
with:
files: ${{ env.RPM_PACKAGE_PATH }}
@@ -244,7 +244,7 @@ jobs:
path: ${{ env.TGZ_PACKAGE_PATH }}
- name: Release TGZ package artifact (RelWithDebInfo only)
uses: softprops/action-gh-release@v2.0.9
uses: softprops/action-gh-release@v2.2.1
if: matrix.build_type == 'RelWithDebInfo' && startsWith(github.ref, 'refs/tags/') && matrix.release == 'stable'
with:
files: ${{ env.TGZ_PACKAGE_PATH }}
+1 -1
View File
@@ -17,7 +17,7 @@ jobs:
- uses: actions/setup-python@v5
with:
# Use oldest supported version for maximum script compatibility
python-version: '3.7'
python-version: '3.10'
- name: Run Update Script
id: head_update
+1
View File
@@ -71,6 +71,7 @@ def git_get_changed_files(
.strip()
.splitlines()
)
changed_files = list(filter(lambda p: not p.endswith(".java"), changed_files))
num_changed = len(changed_files)
if num_changed > 0:
msg(f"Found {num_changed} changed sleigh files:")
@@ -1,4 +1,4 @@
From 76289be82722d1a076bb9718507ce57748b40543 Mon Sep 17 00:00:00 2001
From 7c6e51dd1234387b98e1ad61d3f88a0565364b28 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Mon, 12 Aug 2024 12:02:35 -0400
Subject: [PATCH 1/6] Fix UBSAN errors in decompiler
@@ -9,13 +9,13 @@ Co-authored-by: Alex Cameron <asc@tetsuo.sh>
.../Decompiler/src/decompile/cpp/op.cc | 6 +++++-
.../Decompiler/src/decompile/cpp/opbehavior.cc | 8 +++++++-
.../src/decompile/cpp/pcodecompile.cc | 18 +++++++++++-------
.../Decompiler/src/decompile/cpp/ruleaction.cc | 18 ++++++++++++++----
.../Decompiler/src/decompile/cpp/ruleaction.cc | 12 +++++++++---
.../Decompiler/src/decompile/cpp/semantics.cc | 2 ++
.../Decompiler/src/decompile/cpp/semantics.hh | 2 +-
.../src/decompile/cpp/slgh_compile.cc | 2 +-
.../Decompiler/src/decompile/cpp/type.cc | 2 +-
.../src/decompile/unittests/testfloatemu.cc | 2 +-
10 files changed, 49 insertions(+), 19 deletions(-)
10 files changed, 44 insertions(+), 18 deletions(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
index d78b78731c..caf4b24d15 100644
@@ -116,10 +116,10 @@ index ca9d71ab99..85d4dd281d 100644
return res;
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
index bfca3d6ee5..5819bcd732 100644
index 009570af71..72b2a10503 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
@@ -977,7 +977,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
@@ -976,7 +976,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
Varnode *outvn = op->getOut();
if (outvn->isPrecisLo()||outvn->isPrecisHi()) return 0; // Don't pull apart double precision object
@@ -133,7 +133,7 @@ index bfca3d6ee5..5819bcd732 100644
consume = ~consume;
if ((consume & indir->getIn(0)->getConsume())!=0) return 0;
@@ -7028,8 +7033,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
@@ -7031,8 +7036,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
Varnode *sb = op->getIn(0);
Datatype *sbType = sb->getTypeReadFacing(op);
if (sbType->getMetatype() != TYPE_PTR) return 0;
@@ -145,19 +145,6 @@ index bfca3d6ee5..5819bcd732 100644
Varnode *vn1 = op->getIn(1);
if (!vn1->isConstant()) return 0;
Varnode *outvn = op->getOut();
@@ -8833,7 +8839,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
Varnode *outvn = op->getOut();
int4 flowsize = outvn->getSize();
uintb mask = calc_mask( flowsize );
- mask <<= 8*((int4)op->getIn(1)->getOffset());
+ if (8*((int4)op->getIn(1)->getOffset()) < sizeof(mask)) {
+ mask <<= 8*((int4)op->getIn(1)->getOffset());
+ } else {
+ mask = 0;
+ }
bool aggressive = outvn->isPtrFlow();
if (!aggressive) {
if ((vn->getConsume() & mask) != vn->getConsume()) return 0;
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
index cd9b9835b1..8a4616c3b9 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
@@ -206,10 +193,10 @@ index 50d85e22ba..9f3b456229 100644
msg << " Label <" << sym->getName() << "> was placed but not used" << endl;
else if (!sym->isPlaced())
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
index 59dcc55949..5944db5905 100644
index fd0ab26fb4..7f654c220b 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
@@ -3658,8 +3658,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
@@ -3728,8 +3728,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
top.submeta = sub; // Search on the incorrect submeta
iter = tree.lower_bound(&top);
while(iter != tree.end()) {
@@ -233,5 +220,5 @@ index 2571f55f1a..fe40e22b1b 100644
uintb true_result = ((uintb)(int32_t)f) & 0xffffffff;
uintb encoding = format.getEncoding(f);
--
2.47.0
2.48.1
@@ -1,4 +1,4 @@
From 2e4706231191395dac90b764ce29c55de29ca2ce Mon Sep 17 00:00:00 2001
From 5e37c51ebc8a3ae0f32a3cb0049aaebafec48d7d Mon Sep 17 00:00:00 2001
From: Alex Cameron <asc@tetsuo.sh>
Date: Wed, 3 Aug 2022 20:01:18 +1000
Subject: [PATCH 2/6] Use `stroull` instead of `stroul` to parse address
@@ -34,5 +34,5 @@ index dbaa2e775f..72927bf379 100644
enddata = (const char *) tmpdata;
if (enddata - s.c_str() == s.size()) { // If no size or offset override
--
2.47.0
2.48.1
@@ -1,7 +1,7 @@
From d7f7be313580a6e0eef101848a3c86e3a3db4029 Mon Sep 17 00:00:00 2001
From 0feb881ef1cbc9aa4639e16914b7d9ed863baadf Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Tue, 29 Oct 2024 15:30:57 -0400
Subject: [PATCH 4/6] Use string resize instead of reserve
Subject: [PATCH 3/6] Use string resize instead of reserve
assign will fix up the size to hold all of what's copied
---
@@ -32,5 +32,5 @@ index 5f5fa0c7b3..4cd77156f2 100644
}
data.isTruncated = (numChars >= maximumChars);
--
2.47.0
2.48.1
@@ -1,7 +1,7 @@
From 9b118da968eac4a5ad910dc51d7d70150bab0408 Mon Sep 17 00:00:00 2001
From 2a8f30f31c24ecc7bd499648b97bb8b0c2705b78 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Tue, 29 Oct 2024 17:51:09 -0400
Subject: [PATCH 5/6] Ignore floating point test due to compilation differences
Subject: [PATCH 4/6] Ignore floating point test due to compilation differences
This test fails on macOS and Windows. I'm unsure whether it's an OS or
compiler issue.
@@ -24,5 +24,5 @@ index fe40e22b1b..91440e2510 100644
ASSERT_EQUALS(ff.printDecimal(f2, false), "0.33333334");
double f3 = doubleFromRawBits(0x3fd0000000000000);
--
2.47.0
2.48.1
@@ -1,7 +1,7 @@
From f130a89a600a210e12e4505a4533d27ea7b7e4f7 Mon Sep 17 00:00:00 2001
From 04cca72897d9088713a6e2dadb2774ad20ae7703 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Wed, 30 Oct 2024 14:26:57 -0400
Subject: [PATCH 6/6] Allow positive or negative NAN in decompiler floating
Subject: [PATCH 5/6] Allow positive or negative NAN in decompiler floating
point test
At least on Apple Silicon, this test reports positive NAN.
@@ -33,5 +33,5 @@ index f8108d3d32..1060a3e193 100644
<stringmatch name="Float print #14" min="1" max="1">double7 = 3.1415926535897933e-06;</stringmatch>
</decompilertest>
--
2.47.0
2.48.1
@@ -0,0 +1,26 @@
From a7dee0fbb1838e4e22a1c970718b84976ffb2932 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Sat, 8 Feb 2025 17:59:57 -0500
Subject: [PATCH 6/6] decompiler: Fix strict weak ordering TypePartialEnum
This fixes Windows Debug error encountered in testing where it was
complaining about lack of strict weak ordering.
---
Ghidra/Features/Decompiler/src/decompile/cpp/type.cc | 1 +
1 file changed, 1 insertion(+)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
index 7f654c220b..3f10c78c2f 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
@@ -2300,6 +2300,7 @@ int4 TypePartialEnum::compareDependency(const Datatype &op) const
{
if (submeta != op.getSubMeta()) return (submeta < op.getSubMeta()) ? -1 : 1;
+ if (parent == &op) return 1; // op is our TypeEnum
TypePartialEnum *tp = (TypePartialEnum *) &op; // Both must be partial
if (parent != tp->parent) return (parent < tp->parent) ? -1 : 1; // Compare absolute pointers
if (offset != tp->offset) return (offset < tp->offset) ? -1 : 1;
--
2.48.1
@@ -1,4 +1,4 @@
From d3de474854d052712217ad731fffcea6334808ff Mon Sep 17 00:00:00 2001
From e694ad80e2965178c541a7414e55c76a1e318411 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Mon, 12 Aug 2024 12:02:35 -0400
Subject: [PATCH 1/6] Fix UBSAN errors in decompiler
@@ -9,16 +9,16 @@ Co-authored-by: Alex Cameron <asc@tetsuo.sh>
.../Decompiler/src/decompile/cpp/op.cc | 6 +++++-
.../Decompiler/src/decompile/cpp/opbehavior.cc | 8 +++++++-
.../src/decompile/cpp/pcodecompile.cc | 18 +++++++++++-------
.../Decompiler/src/decompile/cpp/ruleaction.cc | 18 ++++++++++++++----
.../Decompiler/src/decompile/cpp/ruleaction.cc | 12 +++++++++---
.../Decompiler/src/decompile/cpp/semantics.cc | 2 ++
.../Decompiler/src/decompile/cpp/semantics.hh | 2 +-
.../src/decompile/cpp/slgh_compile.cc | 2 +-
.../Decompiler/src/decompile/cpp/type.cc | 2 +-
.../src/decompile/unittests/testfloatemu.cc | 2 +-
10 files changed, 49 insertions(+), 19 deletions(-)
10 files changed, 44 insertions(+), 18 deletions(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
index 6ebec206c9..e5a1ad598c 100644
index 3e9f310446..c903810382 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
@@ -2868,8 +2868,12 @@ void ProtoModelMerged::decode(Decoder &decoder)
@@ -37,7 +37,7 @@ index 6ebec206c9..e5a1ad598c 100644
void ParameterBasic::setTypeLock(bool val)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
index d76a799960..37ba971a34 100644
index e165951fe6..00169e22e5 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
@@ -666,7 +666,11 @@ uintb PcodeOp::getNZMaskLocal(bool cliploop) const
@@ -116,10 +116,10 @@ index ca9d71ab99..85d4dd281d 100644
return res;
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
index f667c6ca95..6ea3916520 100644
index b7fda34cc9..a3d164aa2d 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
@@ -977,7 +977,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
@@ -976,7 +976,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
Varnode *outvn = op->getOut();
if (outvn->isPrecisLo()||outvn->isPrecisHi()) return 0; // Don't pull apart double precision object
@@ -133,7 +133,7 @@ index f667c6ca95..6ea3916520 100644
consume = ~consume;
if ((consume & indir->getIn(0)->getConsume())!=0) return 0;
@@ -7026,8 +7031,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
@@ -7288,8 +7293,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
Varnode *sb = op->getIn(0);
Datatype *sbType = sb->getTypeReadFacing(op);
if (sbType->getMetatype() != TYPE_PTR) return 0;
@@ -145,19 +145,6 @@ index f667c6ca95..6ea3916520 100644
Varnode *vn1 = op->getIn(1);
if (!vn1->isConstant()) return 0;
Varnode *outvn = op->getOut();
@@ -8831,7 +8837,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
Varnode *outvn = op->getOut();
int4 flowsize = outvn->getSize();
uintb mask = calc_mask( flowsize );
- mask <<= 8*((int4)op->getIn(1)->getOffset());
+ if (8*((int4)op->getIn(1)->getOffset()) < sizeof(mask)) {
+ mask <<= 8*((int4)op->getIn(1)->getOffset());
+ } else {
+ mask = 0;
+ }
bool aggressive = outvn->isPtrFlow();
if (!aggressive) {
if ((vn->getConsume() & mask) != vn->getConsume()) return 0;
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
index cd9b9835b1..8a4616c3b9 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
@@ -206,10 +193,10 @@ index 50d85e22ba..9f3b456229 100644
msg << " Label <" << sym->getName() << "> was placed but not used" << endl;
else if (!sym->isPlaced())
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
index 7cda43127f..20a5bc1c83 100644
index 88ca8e36c8..f25b019a4f 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
@@ -3661,8 +3661,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
@@ -3728,8 +3728,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
top.submeta = sub; // Search on the incorrect submeta
iter = tree.lower_bound(&top);
while(iter != tree.end()) {
@@ -233,5 +220,5 @@ index 2571f55f1a..fe40e22b1b 100644
uintb true_result = ((uintb)(int32_t)f) & 0xffffffff;
uintb encoding = format.getEncoding(f);
--
2.47.0
2.48.1
@@ -1,4 +1,4 @@
From 4bbcb71e2c2cf1362628917c26879bbcb4717665 Mon Sep 17 00:00:00 2001
From cc36245a600051a66a4ab6c6ffff835d609ae92a Mon Sep 17 00:00:00 2001
From: Alex Cameron <asc@tetsuo.sh>
Date: Wed, 3 Aug 2022 20:01:18 +1000
Subject: [PATCH 2/6] Use `stroull` instead of `stroul` to parse address
@@ -34,5 +34,5 @@ index dbaa2e775f..72927bf379 100644
enddata = (const char *) tmpdata;
if (enddata - s.c_str() == s.size()) { // If no size or offset override
--
2.47.0
2.48.1
@@ -1,26 +0,0 @@
From 31c3e037e8104e9060b73c62bb5895a8665efbcb Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Sat, 30 Mar 2024 18:46:16 -0400
Subject: [PATCH 3/6] Add missing index check to prevent errors in Windows
Not sure why this only appears when testing on Windows.
---
Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
index 0237adb820..5048a9d480 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
@@ -1844,7 +1844,7 @@ void IfcProtooverride::execute(istream &s)
s >> ws;
Address callpoint(parse_machaddr(s,discard,*dcp->conf->types));
int4 i;
- for(i=0;dcp->fd->numCalls();++i)
+ for(i=0;i<dcp->fd->numCalls();++i)
if (dcp->fd->getCallSpecs(i)->getOp()->getAddr() == callpoint) break;
if (i == dcp->fd->numCalls())
throw IfaceExecutionError("No call is made at this address");
--
2.47.0
@@ -1,7 +1,7 @@
From 7eb62bb534ac02b723baad0bb0a9cb7d33813972 Mon Sep 17 00:00:00 2001
From f0ee9c783a7acd850f6565278842a23865441e6a Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Tue, 29 Oct 2024 15:30:57 -0400
Subject: [PATCH 4/6] Use string resize instead of reserve
Subject: [PATCH 3/6] Use string resize instead of reserve
assign will fix up the size to hold all of what's copied
---
@@ -32,5 +32,5 @@ index 5f5fa0c7b3..4cd77156f2 100644
}
data.isTruncated = (numChars >= maximumChars);
--
2.47.0
2.48.1
@@ -1,7 +1,7 @@
From a76b69021f34973973487362cb5f25f7644880b8 Mon Sep 17 00:00:00 2001
From 43b0f78ca2ce8e2adbcc4f3b3298940c72dc9b5b Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Tue, 29 Oct 2024 17:51:09 -0400
Subject: [PATCH 5/6] Ignore floating point test due to compilation differences
Subject: [PATCH 4/6] Ignore floating point test due to compilation differences
This test fails on macOS and Windows. I'm unsure whether it's an OS or
compiler issue.
@@ -24,5 +24,5 @@ index fe40e22b1b..91440e2510 100644
ASSERT_EQUALS(ff.printDecimal(f2, false), "0.33333334");
double f3 = doubleFromRawBits(0x3fd0000000000000);
--
2.47.0
2.48.1
@@ -1,7 +1,7 @@
From ce0148e9dd6d4a9ba92ee44fb50be1f01b7a8858 Mon Sep 17 00:00:00 2001
From ef11bf80063c80967a6ddb8726e710bd207575f3 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Wed, 30 Oct 2024 14:26:57 -0400
Subject: [PATCH 6/6] Allow positive or negative NAN in decompiler floating
Subject: [PATCH 5/6] Allow positive or negative NAN in decompiler floating
point test
At least on Apple Silicon, this test reports positive NAN.
@@ -33,5 +33,5 @@ index f8108d3d32..1060a3e193 100644
<stringmatch name="Float print #14" min="1" max="1">double7 = 3.1415926535897933e-06;</stringmatch>
</decompilertest>
--
2.47.0
2.48.1
@@ -0,0 +1,26 @@
From 5d6886b914c266f0a97941666fda75e0f7311d35 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Sat, 8 Feb 2025 17:59:57 -0500
Subject: [PATCH 6/6] decompiler: Fix strict weak ordering TypePartialEnum
This fixes Windows Debug error encountered in testing where it was
complaining about lack of strict weak ordering.
---
Ghidra/Features/Decompiler/src/decompile/cpp/type.cc | 1 +
1 file changed, 1 insertion(+)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
index f25b019a4f..2f1337a740 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
@@ -2300,6 +2300,7 @@ int4 TypePartialEnum::compareDependency(const Datatype &op) const
{
if (submeta != op.getSubMeta()) return (submeta < op.getSubMeta()) ? -1 : 1;
+ if (parent == &op) return 1; // op is our TypeEnum
TypePartialEnum *tp = (TypePartialEnum *) &op; // Both must be partial
if (parent != tp->parent) return (parent < tp->parent) ? -1 : 1; // Compare absolute pointers
if (offset != tp->offset) return (offset < tp->offset) ? -1 : 1;
--
2.48.1
+11 -10
View File
@@ -22,7 +22,7 @@ set_property(CACHE sleigh_RELEASE_TYPE PROPERTY STRINGS "stable" "HEAD")
find_package(Git REQUIRED)
# Ghidra pinned stable version commit
set(ghidra_version "11.2.1")
set(ghidra_version "11.3")
set(ghidra_git_tag "Ghidra_${ghidra_version}_build")
set(ghidra_shallow TRUE)
@@ -40,19 +40,19 @@ set(ghidra_patches
"${GIT_EXECUTABLE}" am --ignore-space-change --ignore-whitespace --no-gpg-sign
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0001-Fix-UBSAN-errors-in-decompiler.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0002-Use-stroull-instead-of-stroul-to-parse-address-offse.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0003-Add-missing-index-check-to-prevent-errors-in-Windows.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0004-Use-string-resize-instead-of-reserve.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0005-Ignore-floating-point-test-due-to-compilation-differ.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0006-Allow-positive-or-negative-NAN-in-decompiler-floatin.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0003-Use-string-resize-instead-of-reserve.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0004-Ignore-floating-point-test-due-to-compilation-differ.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0005-Allow-positive-or-negative-NAN-in-decompiler-floatin.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0006-decompiler-Fix-strict-weak-ordering-TypePartialEnum.patch"
)
# Ghidra pinned commits used for pinning last known working HEAD commit
if("${sleigh_RELEASE_TYPE}" STREQUAL "HEAD")
# TODO: Try to remember to look at Ghidra/application.properties
# TODO: CMake only likes numeric characters in the version string....
set(ghidra_head_version "11.3")
set(ghidra_head_version "11.4")
set(ghidra_version "${ghidra_head_version}")
set(ghidra_head_git_tag "ffaa97cbd986e71143d45260cd31167ed0917a96")
set(ghidra_head_git_tag "5a3a8c36c8ec3b0f3b81c9d1b6200d5d5b521f2b")
set(ghidra_git_tag "${ghidra_head_git_tag}")
set(ghidra_shallow FALSE)
set(ghidra_patches
@@ -61,9 +61,10 @@ if("${sleigh_RELEASE_TYPE}" STREQUAL "HEAD")
"${GIT_EXECUTABLE}" am --ignore-space-change --ignore-whitespace --no-gpg-sign
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0001-Fix-UBSAN-errors-in-decompiler.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0002-Use-stroull-instead-of-stroul-to-parse-address-offse.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0004-Use-string-resize-instead-of-reserve.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0005-Ignore-floating-point-test-due-to-compilation-differ.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0006-Allow-positive-or-negative-NAN-in-decompiler-floatin.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0003-Use-string-resize-instead-of-reserve.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0004-Ignore-floating-point-test-due-to-compilation-differ.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0005-Allow-positive-or-negative-NAN-in-decompiler-floatin.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0006-decompiler-Fix-strict-weak-ordering-TypePartialEnum.patch"
)
string(SUBSTRING "${ghidra_git_tag}" 0 7 ghidra_short_commit)
else()