Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
187 commits
Select commit Hold shift + click to select a range
e50f27d
#1244 Add CPU32 processor variant with full instruction set support
polartape Mar 28, 2026
e9d14bb
GP-6892 writeOpcode for ordinal
caheckman May 28, 2026
3ca3a44
GP-6818: Added missing x86 gfni instructions
GhidorahRex May 29, 2026
b3fedff
GP-6843 update SymbolUtilities invalidChars logic
dev747368 Jun 3, 2026
299fb1c
GP-6885: Fixing potential path traversal in AndroidProjectCreator
ryanmkurtz Jun 5, 2026
c616c17
Merge tag 'Ghidra_12.1.2_build' into stable
ryanmkurtz Jun 5, 2026
ff48c33
GP-0: Fix ClassSearcherTest.
nsadeveloper789 Jun 5, 2026
4b48e23
GP-0: Upping patch to 12.1.3
ryanmkurtz Jun 5, 2026
00abcc4
Merge remote-tracking branch 'origin/GP-6885_ryanmkurtz_apk' into patch
ryanmkurtz Jun 8, 2026
a5eb696
Merge remote-tracking branch
ryanmkurtz Jun 8, 2026
05aae4a
Merge remote-tracking branch 'origin/GP-0_Dan_fixTests-2026-06-05-1' …
ryanmkurtz Jun 8, 2026
5194daa
ARM M-profile: fix mrsipsr ISR_NUMBER mask (0x1f -> 0x1ff)
dpusceddu Jun 6, 2026
4f1b1bd
GP-6937: Fixed x86 Xmmreg2 accessing EVEX registers in non-EVEX
GhidorahRex Jun 8, 2026
2c3ca6d
GP-5780: Added several missing x86 instructions
GhidorahRex Jun 8, 2026
21a825a
GP-6642: Corrected disassembly of HCS-H12 BRN instruction
GhidorahRex Jun 8, 2026
c1b34a9
Merge remote-tracking branch
ryanmkurtz Jun 8, 2026
41a8a40
Merge remote-tracking branch 'origin/GP-5780_ghidorahrex_x86_missing_…
ryanmkurtz Jun 8, 2026
6c1803b
Merge remote-tracking branch 'origin/GP-6892_caheckman_WriteOpcodeOrd…
ryanmkurtz Jun 8, 2026
1de7de8
Fix input register for msr apsr
danlehmann May 30, 2024
eaefe96
Merge remote-tracking branch
ryanmkurtz Jun 9, 2026
1202078
GP-0 Corrected invalid test random string generation
ghidra1 Jun 9, 2026
718d9a0
GP-0 Ignore test failure which is resolved for 12.2
ghidra1 Jun 9, 2026
a3167f7
GP-0: Refactor x86 jcc bh change to reduce impact on existing code
GhidorahRex Jun 9, 2026
26ee6af
Merge remote-tracking branch 'origin/GP-0_ghidorahrex_x86_jcc_bh_refa…
ghidra1 Jun 9, 2026
70b7ec5
GP-6061: Implemented several x86 AVX instructions
GhidorahRex Jun 10, 2026
ee95d5e
Merge remote-tracking branch
ryanmkurtz Jun 10, 2026
99780ac
Merge remote-tracking branch
ryanmkurtz Jun 10, 2026
1ea11b2
GP-6891 Improved Debugger Trace import/export support and added packe…
ghidra1 Jun 10, 2026
1431a23
Merge remote-tracking branch 'origin/GP-6891_ghidra1_DBTrace_GZT_FIle…
ghidra1 Jun 10, 2026
a68cee1
GP-6616: Imported non-Programs (i.e., Trace) now try to be opened in the
ghidra1 Jun 10, 2026
9e9083a
GP-6953 Corrected GUID datatype alignment to be 4-bytes
ghidra1 Jun 10, 2026
9e220d1
GP-1 Log Ghidra Server Root as absolute path
ghidra1 Jun 10, 2026
8bfd1de
Merge remote-tracking branch 'origin/GP-6953_ghidra1_GuidAlignment' into
ryanmkurtz Jun 11, 2026
6dd07f9
GP-6936 Support for wrapped memory ranges
caheckman Jun 8, 2026
bbd9436
Merge remote-tracking branch 'origin/GP-6936_caheckman_WrappedRange' …
ryanmkurtz Jun 11, 2026
74910d0
GP-1 Improved Ghidra Server certificate logging
ghidra1 Jun 11, 2026
9ce5c59
GP-0: Follow safe unzipping pattern on javadoc zip file
ryanmkurtz Jun 12, 2026
6fd250d
Merge remote-tracking branch
ryanmkurtz Jun 12, 2026
4f593bd
Added SH-1 and SH-2 manual name and index
joshualmashburn Jun 14, 2026
82c4d30
GP-6964: Added index file to SH2-A language variant
GhidorahRex Jun 15, 2026
3336741
GP-6769: Corrected tricore carry flag calculations
GhidorahRex Jun 15, 2026
edb05a4
riscv: handle divideby0
Sleigh-InSPECtor May 15, 2024
8cdec9b
GP-6989 e500mc stack offset adjustment
emteere Jun 15, 2026
b2298c5
GP-6970 Corrected GhidraURL encode/decode issues. Improved tolerance
ghidra1 Jun 15, 2026
4c7ddb6
Merge remote-tracking branch 'origin/GP-6970_ghidra1_GhidraURLFixes'
ryanmkurtz Jun 16, 2026
4bc4218
Merge remote-tracking branch 'origin/GP-6769_ghidorahrex_tricore_fix_…
ryanmkurtz Jun 16, 2026
c34a660
GP-6971 - Fix memory-consumption issue in malformed PDB directory stream
ghizard Jun 16, 2026
5f947dd
Merge remote-tracking branch 'origin/GP-6971_ghizard_Fix_PDB_memory_c…
ryanmkurtz Jun 16, 2026
4170459
GP-6964: Added index entries for 1dc/lds/stc/sts.l instructions
GhidorahRex Jun 16, 2026
d0478ad
GP-1 Corrected folder URL creation for HeadlessAnalyzer.processURL
ghidra1 Jun 16, 2026
80cd37b
GP-0: Fixing ServerTestUtil so it can run on Windows
ryanmkurtz Jun 16, 2026
3ab53db
Merge remote-tracking branch
ryanmkurtz Jun 16, 2026
1ceb722
GP-0: Removing ancient/useless debug JVM args
ryanmkurtz Jun 15, 2026
75f4965
Merge remote-tracking branch 'origin/GP-6968_emteere_e500mcStackOffset'
ryanmkurtz Jun 17, 2026
190949f
GP-0: Upping gradle wrapper to 9.5.1
ryanmkurtz Jun 17, 2026
2ad4bdc
Merge branch 'GP-1_ghidra1_HeadlessURLFix' into patch
ghidra1 Jun 17, 2026
da1ad47
GP-6977 improve escaping in BSimControlLaunchable
ghidracadabra Jun 17, 2026
ef20124
GP-6896: ImporterDialog 'Program Name' to 'Name' label change
ryanmkurtz Jun 18, 2026
30802d8
Merge remote-tracking branch 'origin/GP-6896_ryanmkurtz_import-file--…
ryanmkurtz Jun 18, 2026
891826d
68000: movem.w always uses 2 increments
jibee Dec 23, 2025
008ac6a
Merge remote-tracking branch 'origin/GP-6977_James_improve_escaping_b…
ryanmkurtz Jun 22, 2026
6f5fa31
GP-2907: Added v850e3 language variant instructions
GhidorahRex Jan 15, 2025
c16c4c6
Merge remote-tracking branch 'origin/GP-2907_ghidorahrex_v850e3_update'
ryanmkurtz Jun 22, 2026
1541f3a
GP-6934: Implement OS/shell-dependent escaping.
nsadeveloper789 Jun 23, 2026
a1caa91
Merge remote-tracking branch
ryanmkurtz Jun 23, 2026
de6b9fe
GP-0: Adding --sun-misc-unsafe-memory-access=allow to Eclipse run
ryanmkurtz Jun 23, 2026
38b5c19
Merge remote-tracking branch
ryanmkurtz Jun 23, 2026
6b682c9
Merge remote-tracking branch
ryanmkurtz Jun 23, 2026
bab81cb
GP-941: Correct SparcV9 register operand display to be consistent
GhidorahRex Jun 8, 2026
4f02c88
Merge remote-tracking branch 'origin/GP-941_ghidorahrex_sparcv9_reg_d…
ryanmkurtz Jun 24, 2026
ebce35d
Merge remote-tracking branch
ryanmkurtz Jun 24, 2026
fb4bfe5
GP-0: Corrected SparcAssemblyTest
GhidorahRex Jun 25, 2026
e896861
Merge remote-tracking branch 'origin/GP-0_ghidorahrex_sparc_assemblyt…
ryanmkurtz Jun 25, 2026
e3dc164
GP-7007: Removed usage of os.system and replaced with subprocess.run
GhidorahRex Jun 26, 2026
daf2306
GP-1 Minor fixes back-ported from GP-6779: project in-use tracking, data
ghidra1 Jun 26, 2026
971bad8
Remove explicit socket buffer locks in remote block stream handles
axd1x8a Jun 25, 2026
707c86a
Merge remote-tracking branch
ryanmkurtz Jun 26, 2026
e503404
Merge remote-tracking branch
ryanmkurtz Jun 26, 2026
ae16e34
GP-0: Fixing PyGhidra run config launch for newest Eclipse
ryanmkurtz Jun 29, 2026
144d4a1
GP-0: Javadoc fix
ryanmkurtz Jun 29, 2026
9767a16
GP-6886: Fix OOM in ObjectStorageStreamAdapter
nsadeveloper789 Jun 29, 2026
02f9ae6
GP-7015: Corrected rex xchg to nop
GhidorahRex Jun 29, 2026
6c1352f
GP-7016: Corrected VPEXTRW to ignore the VEX.W1 bit
GhidorahRex Jun 29, 2026
f9ed6f4
GP-7018: Fixed register opsize for mov to/from segment registers
GhidorahRex Jun 29, 2026
d334ede
Merge remote-tracking branch 'origin/GP-6886_Dan_fixOOMInObjectStorag…
ryanmkurtz Jun 29, 2026
154f9fb
GP-6699: Fixed SuperH4 bsr instruction return address
GhidorahRex Apr 15, 2026
720b1a5
GP-6914: Added missing PowerPC v3.0 and v3.0B/C instructions.
GhidorahRex Jun 30, 2026
4d90198
Merge remote-tracking branch 'origin/GP-6914_ghidorahrex_powerpc_v3.0…
ryanmkurtz Jun 30, 2026
0e8ad90
Merge remote-tracking branch 'origin/GP-6699_ghidorahrex_superh4_bsr_…
ryanmkurtz Jun 30, 2026
43d043e
GP-6876: Corrected operands for RISC-V floating point .w instructions
GhidorahRex Jun 30, 2026
24e2a6e
Merge remote-tracking branch 'origin/GP-6876_ghidorahrex_riscv_w_oper…
ryanmkurtz Jul 1, 2026
161ba0c
GP-6841: Fix PC Column in Time panel for Emulated snapshots.
nsadeveloper789 Jul 1, 2026
08e8f0b
Merge remote-tracking branch 'origin/GP-6841_Dan_fixPcInTimePanelForE…
ryanmkurtz Jul 2, 2026
b4c3c95
AARCH64: zero-extend dest on ADDV/SMAXV/SMINV/UMAXV/UMINV
valium007 Jun 14, 2026
59c854e
AARCH64: zero-extend dest on FMADD/FMSUB scalar forms
valium007 Jun 14, 2026
817a3ac
GP-7040: Comment formatting for consistency
GhidorahRex Jul 6, 2026
adf1695
GP-G770: Corrected MCS-96 CMPL carry flag
GhidorahRex Jul 6, 2026
c0d344f
GP-7044 - Find Uses - Updated finding code for FunctionDefinitions to
dragonmacher Jul 6, 2026
c03a70d
GP-7045: The Swift Demangler now requires Swift to be on the PATH
ryanmkurtz Jul 7, 2026
395cf82
Merge branch 'GP-7045_ryanmkurtz_swift' into patch
ryanmkurtz Jul 7, 2026
214c1fb
Fixed test focus issue when typing into text fields on FlatLaf
dragonmacher Jul 7, 2026
98b2662
Merge remote-tracking branch 'origin/GP-0-dragonmacher-test-focus-fix…
ryanmkurtz Jul 7, 2026
80c61dc
GP-0: Adding -Dsun.awt.disablegrab=true to Ghidra.launch to prevent
ryanmkurtz Jul 7, 2026
f9316e1
Merge remote-tracking branch
ryanmkurtz Jul 8, 2026
108b101
GP-7049 ensure repository ACL excludes users not defined on server
ghidra1 Jul 8, 2026
97780f3
GP-7050 - Fixed exceptions seen on the Mac when using the Column Filter
dragonmacher Jul 8, 2026
1c8b7a1
Merge remote-tracking branch
ryanmkurtz Jul 9, 2026
1f1a5dc
GP-7051 - Fixed deadlock seen when saving a program
dragonmacher Jul 9, 2026
2979c77
Merge remote-tracking branch 'origin/GP-7050-dragonmacher-column-cons…
ryanmkurtz Jul 9, 2026
f3d6349
GP-0 Corrected server test utility to comply with Ghidra Server ACL
ghidra1 Jul 10, 2026
08a1765
GP-1 Revised server command processing to address testing issue
ghidra1 Jul 10, 2026
88d6892
GP-7056 Corrected PLTGOT markup issue that could skip last PLT entry
ghidra1 Jul 10, 2026
b9ae621
Merge remote-tracking branch
ryanmkurtz Jul 10, 2026
2834bc6
GP7055 - Fixed exception when choosing Copy Special
dragonmacher Jul 10, 2026
cfc637c
Merge remote-tracking branch 'origin/GP-7051-dragonmacher-save-deadlock'
ryanmkurtz Jul 10, 2026
ac76ada
Merge remote-tracking branch
ryanmkurtz Jul 10, 2026
1ea863e
GP-7057 Revised ElfSymbol.isExternal() method
ghidra1 Jul 10, 2026
253fdc8
Merge remote-tracking branch 'origin/GP-7057_ghidra1_ExternalElfSymbol'
ryanmkurtz Jul 10, 2026
5031553
GP-7061 Corrected ELF Import regression related to dynamic GNU Hashtable
ghidra1 Jul 13, 2026
b6c2699
Merge remote-tracking branch
ryanmkurtz Jul 13, 2026
155d1c9
Merge remote-tracking branch
ryanmkurtz Jul 13, 2026
87d10fc
GP-7064: Fixing XmlLoader path traversal
ryanmkurtz Jul 14, 2026
f18269b
Fix sev.w arm encoding.
p-mikeg Jul 13, 2026
88566a1
Merge branch 'GP-7065_ghidorahrex_PR-9371_p-mikeg_fix_arm_sev_encoding'
ryanmkurtz Jul 14, 2026
ce37acc
Do not normalize build_exe in pcodetests definitions
niooss-ledger Jul 14, 2026
45d95c5
Merge remote-tracking branch
ryanmkurtz Jul 14, 2026
730dd97
GP-7070 Allow DBHandle.isChanged() to consider uncommitted changes
ghidra1 Jul 15, 2026
88e1c2b
Merge remote-tracking branch 'origin/GP-7070_ghidra1_DBHandleIsChanged'
ryanmkurtz Jul 15, 2026
9b15f90
GP-7072 - Fixed an exception trying to find references to a global
dragonmacher Jul 15, 2026
b3381bb
GP-1 Corrected regrerssion failure
ghidra1 Jul 16, 2026
a290262
Merge remote-tracking branch
ryanmkurtz Jul 16, 2026
db83976
GP-7071: Fixing potential infinite loop in the PefLoader, and some other
ryanmkurtz Jul 17, 2026
dd4d969
Merge branch 'GP-7071_ryanmkurtz_pef-omf' into patch
ryanmkurtz Jul 17, 2026
fe841ab
GP-7079: Handling missing LC_SYMTAB better (Closes #9399)
ryanmkurtz Jul 20, 2026
ca4603a
GP-7048 fixed stack trace in AccessibleFieldPanel
ghidragon Jul 20, 2026
683b8da
9396: Fix unsigned PE export ordinal-table indexes
Thraetaona Jul 20, 2026
5f16f35
Merge branch 'GP-7085_ryanmkurtz_PR-9397_Thraetaona_pe-export-table'
ryanmkurtz Jul 21, 2026
cd8eda1
Merge remote-tracking branch 'origin/GP-6770_ghidorahrex_mcs96_cmpl_c…
ryanmkurtz Jul 21, 2026
48997fd
Merge remote-tracking branch 'origin/GP-7015_ghidorahrex_xchg_nop_fix'
ryanmkurtz Jul 21, 2026
052eadd
Merge remote-tracking branch 'origin/GP-7016_ghidorahrex_vpextrw_fix'
ryanmkurtz Jul 21, 2026
ebb5497
GP-7087: Improved the handling of JDOM attribute errors in the PE
ryanmkurtz Jul 21, 2026
2bdc34c
Merge remote-tracking branch 'origin/GP-7048_ghidragon_fieldpanel_acc…
ryanmkurtz Jul 21, 2026
3101600
fix: missing implementation for IMAGE_REL_ARM64_ADDR64
0xFE4415 Jul 21, 2026
48f25ac
Merge branch
ryanmkurtz Jul 22, 2026
10b2f53
GP-7019: Fixed pslld count operand
GhidorahRex Jul 22, 2026
7c27822
Merge remote-tracking branch 'origin/GP-6818_ghidorahrex_x86_gfni_ins…
ryanmkurtz Jul 23, 2026
0bffbab
Merge remote-tracking branch
ryanmkurtz Jul 23, 2026
efaddf9
GP-7046: Safer parsing of dyld_shared_cache files
ryanmkurtz Jul 7, 2026
6834265
Merge branch 'GP-7046_ryanmkurtz_dyld' into patch
ryanmkurtz Jul 23, 2026
b855a91
GP-0: Upping gradle wrapper to 9.6.1
ryanmkurtz Jul 24, 2026
a16770a
GP-7096 - Prevent headless analyzer from updating last opened project
dragonmacher Jul 27, 2026
859ead6
Merge remote-tracking branch
ryanmkurtz Jul 28, 2026
bc253d3
GP-7094 - Fixed bad tooltips when using fixed cell width; fixed clipp…
dragonmacher Jul 28, 2026
bf49724
Merge remote-tracking branch 'origin/GP-7094-dragonmacher-file-choose…
ryanmkurtz Jul 29, 2026
237d83a
Updated handling of unions with bitfields. Cleaned up code. SQUASHED
ghidravision Jul 31, 2026
9837384
Merge remote-tracking branch
ryanmkurtz Jul 31, 2026
ece6138
GP-7105: Upgraded the PostgreSQL JDBC Driver from 42.7.11 to 42.7.13
ryanmkurtz Jul 31, 2026
1b1c821
GP-7113 Corrected ContentHandle.getChangeSet version handling
ghidra1 Aug 4, 2026
9734de7
GP-7118 - Updated Structure Editor to reloaded when the description is
dragonmacher Aug 5, 2026
c57ffab
Merge remote-tracking branch 'origin/GP-7113_ghidra1_GetChangeSetFix'
ryanmkurtz Aug 6, 2026
6d7ace5
GP-7124: MotorolaHexLoader parsing improvement
ryanmkurtz Aug 6, 2026
36cf495
GP-7123: SomLoader parsing improvement
ryanmkurtz Aug 6, 2026
c09c056
GP-7113 Corrected missing bug fix
ghidra1 Aug 4, 2026
c42f398
Merge remote-tracking branch
ryanmkurtz Aug 7, 2026
1f7a1b3
GP-0: Fixing NullPointerException importing an x64 PE with a zeroed
ryanmkurtz Aug 10, 2026
d08e8ac
GP-0: Fixing a potential NullPointerException when parsing PE DebugMisc
ryanmkurtz Aug 10, 2026
19afcc1
GP-7071: Another OMF fix
ryanmkurtz Aug 10, 2026
fe7e95f
GP-7107 update postgres version
ghidracadabra Aug 10, 2026
9878062
Merge remote-tracking branch 'origin/GP-7107_James_update_postgres_ve…
ryanmkurtz Aug 10, 2026
da55ff5
Fix radix mismatch in GenericAddress sub-word offset display
antoniovazquezblanco Jul 20, 2026
d6be01b
Merge remote-tracking branch
ryanmkurtz Aug 10, 2026
d0650fa
AA64: fix stlrb and stlrh store sizes
Sleigh-InSPECtor Apr 30, 2024
acf4fc7
GP-7133: Fixed MIPS 16e variant ldef entries
GhidorahRex Aug 10, 2026
d1200f8
GP_6767: Corrected OF flag for x86 shift/rotate instructions
GhidorahRex Aug 10, 2026
8fe0f54
GP-7023 Fix switch detection code for instructions with internal pcode
emteere Aug 10, 2026
f488ae3
Merge remote-tracking branch 'origin/GP-7023_emteere_AARCH64SwitchFix…
ghidra1 Aug 11, 2026
cd0d718
GP-7134: Upgrading log4j to 2.26.1
ryanmkurtz Aug 11, 2026
23c874c
Merge remote-tracking branch
ryanmkurtz Aug 12, 2026
5174cc7
Merge remote-tracking branch
ryanmkurtz Aug 12, 2026
52e0666
Merge remote-tracking branch
ryanmkurtz Aug 12, 2026
31ffc98
GP-7017: Fixed masking for several PEXT* and PINS* instructions
GhidorahRex Aug 11, 2026
90015f1
GP-7017: Upped x86 version number
GhidorahRex Aug 12, 2026
97f8ebd
Merge remote-tracking branch
ryanmkurtz Aug 12, 2026
0f55c28
Merge remote-tracking branch
ryanmkurtz Aug 12, 2026
c8c09e5
GP-0: Adding ChangeHistory for 12.1.3
ryanmkurtz Aug 12, 2026
8b4c91d
GP-0: Preserve file timestamps in Gradle
ryanmkurtz Aug 14, 2026
7152bf8
Merge tag 'Ghidra_12.1.3_build' into stable
ryanmkurtz Aug 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,3 +1,93 @@
# Ghidra 12.1.3 Change History (August 2026)

### Improvements
* _Basic Infrastructure_. Added stricter filtering to characters used for symbol names. (GP-6843, Issue #9165, #9172, #9206)
* _BSim_. Improved escaping in `BSimControlLaunchable`. (GP-6977)
* _BSim_. Upgraded the PostgreSQL JDBC Driver from 42.7.11 to 42.7.13. (GP-7105)
* _BSim_. Upgraded postgresql for BSim to 15.18. (GP-7107)
* _Demangler_. The Swift Demangler Analyzer no longer accepts a user-specified path to the Swift binary directory. Instead, the Demangler expects Swift to be on the `PATH`. (GP-7045)
* _Exporter_. Added packed Debugger Trace import/export using `*.gzt` files. (GP-6891)
* _GUI_. Updated the Headless Analyzer to not write to the user's preferences. (GP-7096, Issue #9414)
* _Importer:COFF_. Implemented the COFF `IMAGE_REL_ARM64_ADDR64` relocation. (GP-7088, Issue #9408)
* _Importer:Mach-O_. Provided safer parsing of `dyld_shared_cache` files. (GP-7046)
* _Logging_. Upgraded log4j to version 2.26.1. (GP-7134)
* _Multi-User_. Corrected potential network performance issue related to Ghidra Server use. Full benefit requires update of both Ghidra Server installation and Ghidra client software. (GP-7012, Issue #2752, #9316)
* _Processors_. Made SparcV9 register display formatting more consistent. (GP-941)
* _Scripting_. Updated the Structure Editor to perform a structure reload when the structure's description is changed outside of the editor. (GP-7118, Issue #9461)
* _Search_. Updated __Find Uses of__ for FunctionDefinitions to find references inside of functions and function parameters. (GP-7044, Issue #9342)

### Bugs
* _Analysis_. Fixed failure to recover switch instructions if the switch is computed with an instruction with internal pcode branching such as the AARCH64 `csel` instruction. (GP-7023)
* _BSim_. Improved `GhidraURL.toURL` to handle Ghidra URLs previously stored by BSim where proper URL encoding was never performed. (GP-6970, Issue #9275)
* _Data Types_. Corrected BuiltIn GUID datatype alignment to be 4 bytes instead of 8 bytes. Packed structures containing this datatype will need to be re-packed to pick up on this change. (GP-6953, Issue #9200)
* _DB_. Corrected Ghidra database problem which could prevent analysis times from getting properly saved to a program. (GP-7070, Issue #9346)
* _DB_. Corrected internal method behavior for `ContentHandler.getChangeSet` which could return an empty change set if the version range does not include the latest version. (GP-7113, Issue #9415)
* _Debugger:Agents_. Now applying proper argument quoting and metacharacter escaping to prevent `ShellUtils` command injection. (GP-6934, Issue #9283)
* _Debugger:Time_. Fixed PC column in Time panel when emulating from a live target. (GP-6841)
* _Debugger:Trace_. Fixed a potential OOM exception in `ObjectStorageStreamAdapter` used by Trace database. (GP-6886)
* _Decompiler_. Added Decompiler support for memory accesses that wrap from high to low addresses. (GP-6936)
* _FileSystems_. Fixed a potential path-traversal vulnerability in `AndroidProjectCreator`. (GP-6885)
* _GUI_. Fixed bugs in the Column Filter Dialog that caused `NullPointerExceptions` on some Mac systems. (GP-7050)
* _GUI_. Fixed a deadlock seen when saving a program. (GP-7051, Issue #9358)
* _GUI_. Fixed incorrect tool tips in the File Chooser that are sometimes seen when filenames are clipped. (GP-7094)
* _Importer_. Fixed a potential path-traversal vulnerability when importing XML `*.bytes` files. (GP-7064)
* _Importer_. Fixed a potential infinite loop in the PEF loader and made improvements to OMF parsing. (GP-7071)
* _Importer_. Providing more efficient parsing of System Object Model (SOM) binaries. (GP-7123)
* _Importer_. Providing more efficient parsing of Motorola Hex files. (GP-7124)
* _Importer:ELF_. Corrected an issue found with ELF dynamic PLTGOT processing, in the absence of section headers, which could cause the last PLT to be skipped. (GP-7056)
* _Importer:ELF_. Corrected ELF Importer regression with Ghidra 12.1.2 which could fail when processing dynamic GNU Hashtable and symbol table. (GP-7061, Issue #9369)
* _Importer:Mach-O_. Fixed an `IndexOutOfBoundsException` in the Mach-O loader that could occur when importing a binary with a `LC_DYSYMTAB` load command but having a missing or empty `LC_SYMTAB` load command. (GP-7079, Issue #9399)
* _Importer:PE_. Fixed unsigned PE export ordinal-table indexes. (GP-7085, Issue #9396, #9397)
* _Importer:PE_. Improved the handling of JDOM attribute errors in the PE `LibraryLookupTable`. (GP-7087, Issue #6288)
* _Listing_. Fixed an `IllegalArgumentException` that occurred when trying to perform __Copy Special__ in the Listing with a program name that contains the exclamation mark (`!`) character. (GP-7055, Issue #9362)
* _PDB_. Fixed a memory-consumption issue that could occur with a malformed PDB directory stream. (GP-6971)
* _Processors_. Added support for RH850G3 instructions in the V850 language module. (GP-2907, Issue #4788)
* _Processors_. Fixed register operand for ARM M-profile `msr apsr` instruction operand encoding. (GP-5206, Issue #6597, #6598)
* _Processors_. Added several missing x86 instructions. (GP-5780)
* _Processors_. Added semantics for several x86 AVX instructions. (GP-6061, Issue #9184, #9197)
* _Processors_. Added CPU32 variant for the M68000 processor module. (GP-6186, Issue #1244, #2617, #8463, #9084)
* _Processors_. Corrected operand sizes for AARCH64 `stlrb` and `stlrh` instructions. (GP-6620, Issue #6468, #9043)
* _Processors_. Corrected disassembly of HCS12 `BRN` instruction. (GP-6642, Issue #9001)
* _Processors_. Fixed an issue with a missing return address for the SuperH4 `bsr` instruction. (GP-6699)
* _Processors_. Corrected x86 logic for setting the `OF` flag for `SHR`, `RCL`, and `RCR` instructions. (GP-6767, Issue #9330)
* _Processors_. Corrected Tricore `subc` carry flag usage. (GP-6769)
* _Processors_. Corrected carry flag calculation for the MCS-96 `CMPL` instruction. (GP-6770)
* _Processors_. Added missing x86 GFNI instructions. (GP-6818)
* _Processors_. Corrected handling of RISC-V 16-bit operands. (GP-6876)
* _Processors_. Fixed RISC-V emulation of `div` and `rem` instructions when divisor is 0. (GP-6909, Issue #6508, #9225, #9235)
* _Processors_. Added PowerPC v3.0B, v3.0C instructions. (GP-6914)
* _Processors_. Corrected interrupt mask size in ARM `mrs` for the `IPSR` system status register. (GP-6931, Issue #9251, #9252)
* _Processors_. Fixed an issue with x86 legacy instructions using a `REX` prefix to read AVX-512 registers. (GP-6937, Issue #9256)
* _Processors_. Added instruction index file for the SuperH processor. (GP-6964, Issue #9278)
* _Processors_. Fixed stack parameter offset for e500mc default calling convention. (GP-6968, Issue #9089)
* _Processors_. Fixed an issue with the M68000 `movem.w` instruction incrementing by 4 instead of 2. (GP-6983, Issue #8824)
* _Processors_. Corrected x86 `rex chg eax, eax` to correctly disassemble to `nop`. (GP-7015, Issue #9327)
* _Processors_. Corrected x86 `vpextrw` to correctly disassemble when `VEX.W=1`. (GP-7016, Issue #9323)
* _Processors_. Corrected x86 `PINSRW`, `VPEXTRB`, and `VPEXTRD` intructions to use the correct masking of immediate byte for masks. (GP-7017, Issue #9328)
* _Processors_. Corrected x86 `MOV` instruction to use 32-bit register operands when moving from segment registers. (GP-7018, Issue #9326)
* _Processors_. Corrected x86 `pslld` instruction to use correct shift count for upper word. (GP-7019, Issue #9329)
* _Processors_. Corrected AARCH64 NEON instructions which did not correctly zero-extend scalar results. (GP-7040, Issue #9277)
* _Processors_. Corrected encoding for ARM `sev.w` instruction. (GP-7065, Issue #9371)
* _Processors_. Corrected MIPS 16e language variants to use the correct `variant` tag in the ldefs file. (GP-7133, Issue #9432)
* _Testing_. Fixed pcodetest framework to correctly honor the `build_exe` config option. (GP-7067, Issue #9374)
* _Tests_. Patched the pcodetest builder to remove the use of `os.system()`. (GP-7007, Issue #9309)

### Notable API Changes
* _Debugger:Agents_. (GP-6934) `ShellUtils.generateLine` now requires a `Shell` argument, identifying the applicable shell. `ShellUtils.generateArgument` has been replaced by `Shell.generateArgument`.
* _Decompiler_. (GP-6892) Added `Encoder.writeOpcode` method, specifically for opcode ordinals.
* _Importer:ELF_. (GP-7057) Revised `ElfSymbol.isExternal() ` to disregard symbol type, `st_value`, and `st_size`, which were previously being considered.

# Ghidra 12.1.2 Change History (June 2026)

### Improvements
* _MachineLearning_. Upgraded the Machine Learning extension's olcut jars to 5.3.1. (GP-6894)
* _Multi-User_. Data buffers transferred to and from a Ghidra Server are now compressed by default. The default was previously inconsistent for the two directions. (GP-6915)

### Bugs
* _Decompiler_. Fixed infinite loop in Decompiler analysis that was triggered by bitfield data-types. (GP-6850, Issue #9185)
* _Importer:ELF_. Improved ELF GNU Hash table bounds-checking to avoid potential hang. (GP-6887)
* _Multi-User_. Corrected severe regression error with Ghidra Server 12.1.1 block-stream compression. (GP-6903)

# Ghidra 12.1.1 Change History (May 2026)

### Improvements
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
import ghidra.program.model.data.FileDataTypeManager;
import ghidra.program.model.listing.Program;
import ghidra.util.Msg;
import ghidra.util.exception.VersionException;
import ghidra.util.task.TaskMonitor;

public class IsfServer extends Thread {
Expand Down Expand Up @@ -102,13 +101,13 @@ public DataTypeManager getDataTypeManager(String ns) {
try {
DataTypeManager dtm;
if (ns.endsWith(".gdt")) {
dtm = openAsArchive(ns);
dtm = openAsDataTypeArchive(ns);
}
else if (ns.endsWith(".gzf")) {
dtm = openAsDatabase(ns);
dtm = openAsProgramDatabase(ns);
}
else {
dtm = openAsDomainFile(ns);
dtm = openAsProgramFile(ns);
}
managers.put(ns, dtm);
return dtm;
Expand All @@ -120,43 +119,43 @@ else if (ns.endsWith(".gzf")) {
}
}

private DataTypeManager openAsDomainFile(String ns) throws Exception {
private DataTypeManager openAsProgramFile(String ns) throws Exception {
ProjectData projectData = project.getProjectData();
DomainFile df = projectData.getFile(ns);
if (!Program.class.isAssignableFrom(df.getDomainObjectClass())) {
throw new IOException("File does not correspond to Program content: " + ns);
}

// FIXME: Need to track and release Program instance after DTM use is complete (GP-6895)
Program program = (Program) df.getDomainObject(this, false, false, TaskMonitor.DUMMY);
return program.getDataTypeManager();
}

private DataTypeManager openAsArchive(String ns) throws Exception {
private DataTypeManager openAsDataTypeArchive(String ns) throws Exception {
File gdt = new File(ns);
return FileDataTypeManager.openFileArchive(gdt, false);
}

private DataTypeManager openAsDatabase(String ns) throws Exception {
private DataTypeManager openAsProgramDatabase(String ns) throws Exception {
File gzf = new File(ns);
TaskMonitor dummy = TaskMonitor.DUMMY;
PackedDatabase db = PackedDatabase.getPackedDatabase(gzf, dummy);

DBHandle dbh = db.openForUpdate(dummy);
ProgramDB p = null;

Program p;
boolean success = false;
try {
p = new ProgramDB(dbh, OpenMode.UPDATE, dummy, this);
}
catch (VersionException e) {
if (!e.isUpgradable()) {
throw new RuntimeException(p + " uses an older version and is not upgradable.");
}
p = new ProgramDB(dbh, OpenMode.UPGRADE, dummy, this);
success = true;
}
finally {
dbh.close();
}

dbh = db.openForUpdate(dummy);
p = new ProgramDB(dbh, OpenMode.UPGRADE, dummy, this);

if (!p.isChanged()) {
throw new RuntimeException(p + " uses an older version and was not upgraded.");
if (!success) {
dbh.close();
}
}

// FIXME: Need to track and release Program instance after DTM use is complete (GP-6895)
return p.getListing().getDataTypeManager();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import com.sun.jdi.connect.Connector;
import com.sun.jdi.connect.Connector.Argument;

import ghidra.pty.ShellUtils;
import ghidra.pty.ShellUtils.Shell;

public class JdiArguments {
enum Mode {
Expand Down Expand Up @@ -101,7 +101,7 @@ public void putArguments(Map<String, Argument> args) {
}
String cp = env.get("OPT_TARGET_CLASSPATH");
if (!cp.isBlank()) {
args.get("options").setValue("-cp " + ShellUtils.generateArgument(cp));
args.get("options").setValue("-cp " + Shell.LOCAL.generateArgument(cp));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
import ghidra.program.model.listing.Program;
import ghidra.program.util.ProgramLocation;
import ghidra.pty.*;
import ghidra.pty.ShellUtils.Shell;
import ghidra.trace.model.Trace;
import ghidra.trace.model.TraceLocation;
import ghidra.util.*;
Expand Down Expand Up @@ -475,7 +476,7 @@ protected PtyTerminalSession runInTerminal(List<String> commandLine, Map<String,
parent.getInputStream(), parent.getOutputStream());

List<String> withoutPath = ShellUtils.removePath(commandLine);
terminal.setSubTitle(ShellUtils.generateLine(withoutPath));
terminal.setSubTitle(ShellUtils.generateLine(withoutPath, Shell.DISPLAY));
TerminalListener resizeListener = new TerminalListener() {
@Override
public void resized(short cols, short rows) {
Expand All @@ -490,8 +491,19 @@ public void resized(short cols, short rows) {
terminal.addTerminalListener(resizeListener);

env.put("TERM", "xterm-256color");
PtySession session =
pty.getChild().session(commandLine.toArray(String[]::new), env, workingDirectory);
PtySession session;
try {
session =
pty.getChild().session(commandLine.toArray(String[]::new), env, workingDirectory);
}
catch (Throwable t) {
terminal.terminated(-1);
pty.close();
for (TerminalSession ss : subordinates) {
ss.terminate();
}
throw t;
}

Thread waiter = new Thread(() -> {
try {
Expand Down Expand Up @@ -718,6 +730,7 @@ public LaunchResult launchProgram(TaskMonitor monitor, LaunchConfigurator config
* terminates early
*/
monitor.setMessage("Waiting for connection");
monitor.addCancelledListener(acceptor::cancel);
connection = acceptOrSessionEnds(acceptor, backEnd);
connection.registerTerminals(sessions.values());
monitor.increment();
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading