# Ghidra 9.0.3 Change History (April 2019)

> New Feature

> - GUI. Function tags are now viewable by function.

> Improvements

> - Decompiler. Improved modeling of CFG on Windows 10. (Issue #340)
> - Patcher. Renamed patch directory to /Ghidra/patch and added README.txt that explains how the patch directory is used.
> - Search. Updated the Decompiler Data Type Finder to find references to inside of nested array access in a line of Decompiler C output. (Issue #416)
> - Sleigh. Improved error reporting for SLEIGH compiler. (Issue #364)

> Bugs

> - Analysis. Code that checks for thunks no longer throws an exception if the PC is not set for the processor.
> - Analysis. Made a fix to enable Apply button when changing tool options. (Issue #40)
> - Data Types. Fixed concurrent modification exception when replacing one datatype for another that results in some other datatype being renamed.
> - Decompiler. Fixed dynamic variables and equates in 16-bit x86 programs. (Issue #336)
> - Decompiler:Java. Fixed DEX decompilation regression issue. (Issue #350)
> - Eclipse Integration. Fixed exception in Eclipse GhidraDev plugin that occurred when performing certain actions on a Ghidra project that was imported from a previously exported Archive File. (Issues #283, #383)
> - GUI. Improved documentation on how to deal with HiDPI monitor issues in Linux. In the <ghidra_installation>/support/launch.properties file, change VMARGS=-Dsun.java2d.xrender from false to true.
> - Importer. Fixed an exception that occurred when batch importing APK files. (Issue #426)
> - Languages. The 6502 Zero page indexed addressing has been corrected to only access the Zero page. (Issue #201)
> - Languages. The 68000 BCD arithmetic instructions now have pcode semantics that allow disassembly to continue. (Issue #227)
> - Multi-User:Ghidra Server. Restored ability to execute svrAdmin script in development mode.
> - Search. Fixed NullPointerException in Decompiler Data Type Reference Finder. (Issue #407)

# Ghidra 9.0.2 Change History (April 2019)

> Bugs

> - Analysis. Constant reference analysis boundary controls for speculative references has been fixed. Speculative references are references created from computed constants passed as parameters, stored to a location, or from indexed offsets from a register. (Issue #228)
> - Decompiler. Fixed rendering bug in the Decompiler when the "Find" dialog is closed. (Issue #282)
> - Decompiler. Fixed decompiler handling of Function Definition data types. (Issue #247)
> - Decompiler. Fixed "Free Varnode" exception in RuleConditionalMove. (Issue #294)
> - Diff. Fixed exceptions that can occur in the Diff View for programs with overlays.
> - Documentation. Corrected the spelling of "listener" throughout the source code. (Issue #235)
> - Exporter. Exporting a selection as Intel Hex will now allow a selection of any length. Previously this was restricted to multiples of 16 bytes. (Issue #260)
> - GUI. Fixed exception that occurs after disabling MyProgramChangesDisplayPlugin.
> - GUI. Updated the "Open Program" dialog to disallow file drop operations. (Issue #252)
> - Languages. The ARM Thumb CMP.W and LSL isntructions have been changed to correctly decode. There are still issues to work out with Unpredictable execution when Rd is the PC. (Issue #280)
> - Multi-User:Ghidra Server. Corrected bug introduced into ghidraSvr.bat which could prevent Ghidra Server startup (Issue #279)
> - Scripting. MultiInstructionMemReference script has been corrected to consider input and output registers when placing a reference on an instruction.

> Security

> - Basic Infrastructure. Added a property to support/launch.properties to prevent log4j from using jansi.dll on Windows. (Issue #286)

# Ghidra 9.0.1 Change History (March 2019)

> New Features

> - Scripting. Created a script to show all equates within the current selection. (Issue #111)

> Improvements

> - Basic Infrastructure. Updated commons-compress library to version 1.18. (Issue #171)
> - Eclipse Integration. Ghidra now connects to the Eclipse GhidraDev plugin on 127.0.0.1 rather than localhost.
> - GUI. Turned on font anti-aliasing by default for Linux. (Issue #212)
> - GUI. Fixed Options Dialog slow scrolling speed. (Issue #27)
> - Importer:ELF. Corrected bug in ELF loader which can improperly process the GOT, PLT and relocations when multiple symbol tables exist within the ELF binary. (Issue #52)
> - Languages. Added ARM/Thumb SRS instruction decodes for undefined modes. (Issue #216)
> - Multi-User:Ghdira Server. Corrected the Ghidra Server service wrapper (YAJSW) configuration for Mac OS X to prevent a startup timeout condition which could occur.

> Bugs

> - API. Fixed equals method on Varnode class. (Issue #97)
> - API. Fixed a bug in MaskImpl.comlementMask(). (Issue #187)
> - Basic Infrasturcture. Fixed special character handling in idaxml.py. (Issue #75)
> - Basic Infrastructure. Ghidra now forces the locale to en_US by default. Only the en_US is currently supported. This fixes certain unexpected exceptions. (Issue #209)
> - Diff. Fixed exceptions occasionally encountered when starting a Diff session. (Issue #211)
> - Documentation. Fixed javadoc search box redirecting to broken links. (Issue #129)
> - Function Graph. Fixed Function Graph exception when generating tooltip. (Issue #65)
> - GUI. Updted window placement to keep windows on screen. (Issue #41)
> - GUI. Add/Edit References dialog now restricts users to creating refs in valid memory address spaces.
> - GUI. Fixed exception when exiting Ghidra while a table is being edited. (Issue #51)
> - GUI. Fixed some touchpad scrolling issues. (Issue #2)
> - GUI. Fixed stack trace in the Data Type Manager's tooltip generation. (Issue #133)
> - GUI. User key binding settings for the Recently Used and Define Pointer actions no longer lost after re-launching tool. (Issue #152)
> - GUI. Toolbar buttons now respond to fast clicking.
> - Importer:MachO. The MachoLoader can now find import libraries found in Universal Binary files. (Issue #136)
> - Importer:PE. The PeLoader now correctly parses the GuardCFFunctionTable when entries are more than 4 bytes each. (Issue #220)
> - Languages. Added missing PowerPC VLE conditional branch instructions: e_bdnz and e_bdz. (Issue #103)
> - Languages. Fixed instruction semantics for several instructions and added Control Flow Enforcement, NOP variants, CMP variants, UD1, and prefixed call instructions to X86 processor specification. (Issues #22, #53, #158, #157)
> - Languages. The 68000 MOVE instruction now correctly sets the CF and VF flags. (Issue #163)
> - Languages. Added four missing MOVEM instruction variants to the 68000 processor. (Issue #219)
> - Languages. An incorrect usage of X instead of Y in indexed mode for the 6502 has been corrected.(Issue #201)
> - Languages. Added support for ARM Thumb half BL instruction on processor variants prior to v6. (Issue #39)
> - Multi-User:Ghidra Server. Removed support for native OS authentication from Ghidra Server (removed modes -a2 and -a3) due to incompatibility with newer OS releases including Windows 10 and Windows Server 2016. Re-introduction of this will be considered for a future release.
> - PDB. Corrected NPE error when processing PDB files. (Issues #138, #188)
> - Scripting. Fixed a bug in ImportSymbolsScript.py that prevented it from running. (Issue #170)

> Security

> - Basic Infrastructure. Running Ghidra in debug mode no longer opens remotely accessible ports by default. (Issue #6)
> - GUI. The Defined Strings plugin no longer renders HTML in its table. (Issue #45)
> - Project Manager. Fixed an XXE vulnerability affeting projects and many other saved components. (Issue #71)