16049 Commits

Author SHA1 Message Date
ghidra1 75b1172a4d Merge remote-tracking branch 'origin/GP-6298_Dan_fixSnapshotIsNull' into patch 2026-01-12 20:42:51 -05:00
ghidra1 00f6e14cb5 Merge remote-tracking branch 'origin/GP-6316_SleighUnique256' into patch 2026-01-12 20:37:27 -05:00
ghidra1 5cac537c10 Merge remote-tracking branch 'origin/GP-6314_CrossbuildLocalLabels' into patch 2026-01-12 20:37:05 -05:00
caheckman 7828f235d3 GP-6316 Increase maximum temporary size for SLEIGH to 256 bytes 2026-01-12 22:31:42 +00:00
Dan 74119b8093 GP-6322: Add test and fix it. 2026-01-12 21:28:04 +00:00
caheckman 4830a7ab99 GP-6314 Reset label counter for every named section 2026-01-12 19:57:19 +00:00
Dan e08f2877fe GP-6298: Add isSnapOnly and isStale methods to TraceSnapshot. 2026-01-12 18:07:40 +00:00
ghidra1 7a79fbe735 GP-6321 Force project filesystem index rebuild if index file is empty 2026-01-12 11:02:57 -05:00
Ryan Kurtz 0c98b5dda2 Merge remote-tracking branch 'origin/GP-6287_Dan_fixTaintOpSizes' into patch 2026-01-12 08:41:44 -05:00
Ryan Kurtz 03740023b7 GP-6301: PyGhidra 3.0.2 now uses TaskMonitor.DUMMY instead of
PyGhidraTaskMonitor if no timeout is specified (#8858)
2026-01-12 06:21:07 -05:00
Ryan Kurtz 056791e9cc Merge remote-tracking branch 'origin/GP-6310_SubvariableLeftRightExtension' into patch 2026-01-12 04:52:17 -05:00
caheckman 123bd5cbe6 GP-6310 Apply extension patch if consumption is beyond small variable 2026-01-09 20:37:38 +00:00
ghidra1 efa62a7eb5 Merge remote-tracking branch
'origin/GP-6315_emteere_FixCallINDStackDepthTracking' into patch
(Closes #8837)
2026-01-09 15:30:06 -05:00
Dan 12174df377 GP-6287: Cleaner impl of union-it-all case in Taint emu. 2026-01-09 20:01:13 +00:00
ghidra1 952edb5491 GP-1 Misc pcodetest changes in support of llvm use 2026-01-09 14:34:48 -05:00
emteere b473d933a5 GP-6315 Quick fix for stack depth and function effects not propogating
across indirect windows external calls
2026-01-09 18:30:30 +00:00
Ryan Kurtz c1a088c69b Merge remote-tracking branch 'origin/GP-6295_Dan_fixReDisassembler' into
patch (Closes #8826)
2026-01-09 12:42:55 -05:00
Ryan Kurtz 0591cf11fe Merge remote-tracking branch 'origin/GP-6294_Dan_fixPcodeStepperUniquesAgain' into patch 2026-01-09 12:41:12 -05:00
Ryan Kurtz 1acb4a37a0 GP-6301: PyGhidraTaskMonitor no longer hangs python session
(Closes #8858)
2026-01-08 12:30:06 -05:00
Dan a91e6500de GP-6294: Fix P-code Stepper: Trace doesn't store uniques. 2026-01-07 19:05:43 +00:00
Dan d95e9e35d7 GP-6295: Fix ReDisassembler: MemBuffer address, avoid equiv prototype replacement. 2026-01-07 17:01:53 +00:00
ghidra1 37698aecb9 GP-6290 Corrected CompositeDBAdapterV1 upgrade bug 2026-01-06 13:24:05 -05:00
Ryan Kurtz 4106c5ed9a Merge remote-tracking branch
'origin/GP-6286_ghidra007_rtti_add_empty_array_check' into patch
(Closes #8853)
2026-01-06 13:08:58 -05:00
ghidra007 d98aa6ffc3 GP-6286 added check for empty array 2026-01-06 17:22:02 +00:00
Ryan Kurtz 03ce9a7ab8 GP-0: Upping fetchDependencies.gradle's version of commons-io 2026-01-06 09:36:40 -05:00
Ryan Kurtz e0aeaf9b5b GP-0: Fixing @return javadoc for DataTypeParser.parse() methods
(Closes #8833)
2026-01-06 06:56:15 -05:00
Ryan Kurtz 2582906d35 GP-0: Fixing javadoc 2026-01-05 10:00:13 -05:00
Ryan Kurtz 0e0c92ea2e GP-6284: Upgrading wheels 2026-01-05 07:41:22 -05:00
Ryan Kurtz d6b7bb8c74 GP-6283: Fixing PyGhidra API inadvertently squashing some exceptions 2026-01-02 13:30:05 -05:00
Ryan Kurtz 79da000357 Merge branch 'GP-6283_ryanmkurtz_pyghidra' into patch (Closes #8018) 2026-01-02 07:29:03 -05:00
Ryan Kurtz 89f487f65f GP-6283: PyGhidra 3.0.2 2026-01-02 07:28:00 -05:00
Ryan Kurtz 59f361983f Merge remote-tracking branch 'origin/GP-1-dragonmacher-find-refs-bitfield-exception' into patch 2025-12-30 17:47:31 -05:00
Ryan Kurtz 52f4e667c6 Merge remote-tracking branch 'origin/GP-1-dragonmacher-test-fixes-12-30-25' into patch 2025-12-30 17:46:23 -05:00
dragonmacher d45f5a2800 Test fixes 2025-12-30 15:39:38 -05:00
dragonmacher 0028eb07a4 Fixed exception when finding references 2025-12-30 14:16:42 -05:00
Jonas Bewig e94681701a CR16: fix CR16C TBIT instruction 2025-12-29 20:10:09 +00:00
Nicolas Iooss af8a370421 Fix eBPF compare-and-exchange instruction
Linux kernel's documentation tells in
https://www.kernel.org/doc/html/v6.0/bpf/instruction-set.html#atomic-operations

> The BPF_CMPXCHG operation atomically compares the value addressed by
> dst_reg + off with R0. If they match, the value addressed by
> dst_reg + off is replaced with src_reg. In either case, the value that
> was at dst_reg + off before the operation is zero-extended and loaded
> back to R0.

If the values don't match, *(dst_reg + off) is not supposed to be
modified.

Moreover, register R0 is always modified and the 32-bit instruction
truncates its value (with a zero-extension). This is also clear in the
implementation of BPF_CMPXCHG in
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf/core.c?h=v6.18#n2186

    case BPF_CMPXCHG:
            if (BPF_SIZE(insn->code) == BPF_W)
                    BPF_R0 = (u32) atomic_cmpxchg(
                            (atomic_t *)(unsigned long) (DST + insn->off),
                            (u32) BPF_R0, (u32) SRC);
            else if (BPF_SIZE(insn->code) == BPF_DW)
                    BPF_R0 = (u64) atomic64_cmpxchg(
                            (atomic64_t *)(unsigned long) (DST + insn->off),
                            (u64) BPF_R0, (u64) SRC);

Fix the semantic of the compare-and-exchange instruction accordingly.
2025-12-29 19:49:13 +00:00
Nicolas Iooss ff6eb2213b Fix disassembly of eBPF atomic instructions
eBPF ISA v3 introduced atomic instructions:
https://www.kernel.org/doc/html/v6.0/bpf/instruction-set.html#atomic-operations

These instructions are encoded using BPF_ATOMIC | BPF_W  | BPF_STX
and BPF_ATOMIC | BPF_DW | BPF_STX for 32-bit and 64-bit operations,
with:

    BPF_ATOMIC = 0xc0
    BPF_DW = 0x18
    BPF_W = 0
    BPF_STX = 0x03

While Ghidra's semantic section is constructed correctly (atomic add
uses an addition ; atomic or uses or ; ...), the disassembly always
displays STXXADDW and STXXADDDW. These mnemonics come from the
deprecated name BPF_XADD = BPF_ATOMIC | BPF_ADD = 0xc0.

Replace the confusing mnemonics with the ones used by binutils and
documented in
https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gas/doc/c-bpf.texi;h=003cb92a457985038a9abc1ffbf347f636eb0586;hb=2bc7af1ff7732451b6a7b09462a815c3284f9613#l745
2025-12-29 19:49:12 +00:00
Ryan Kurtz 105651b2b9 Merge remote-tracking branch 'origin/GP-6263-dragonmacher-copy-text-fix'
into patch (Closes #8797)
2025-12-23 12:45:56 -05:00
Odin Dahlström c1f97cde08 Fix missing Altivec vadduws instruction 2025-12-23 13:21:07 +00:00
Dan 3e5849c6a9 GP-0: Fix tests by brackgrounding patch commands. 2025-12-22 11:09:15 -05:00
Ryan Kurtz 99298769b9 Merge remote-tracking branch
'origin/GP-6254-dragonmacher-fg-highlight-npe' into patch (Closes #8798)
2025-12-22 07:49:22 -05:00
dragonmacher 5866dfc22f GP-6263 - Listing - Fixed bug when copying text fro memory block fields 2025-12-19 19:00:10 -05:00
Ryan Kurtz 2558cf5e0f Merge remote-tracking branch 'origin/GP-6191_Dan_fixTerminal' into patch 2025-12-19 14:52:59 -05:00
Dan e94bb1e66e GP-6191: Implement repeat_char CSI final in VT-100. 2025-12-19 18:59:51 +00:00
Ryan Kurtz a163b02313 Merge remote-tracking branch 'origin/GP-6253_Dan_fixPcodeStepper' into patch 2025-12-19 12:44:27 -05:00
Dan c1d61b0025 GP-6253: Emu: Fix crash reading uniques before space is written. 2025-12-19 17:30:25 +00:00
Ryan Kurtz 289e55c451 Merge remote-tracking branch
'origin/GP-6236_Dan_reEmulateLess--SQUASHED' into patch (Closes #8767)
2025-12-19 10:28:56 -05:00
Dan cbe7d4743e GP-6236: Emulate from nearest snapshot. Avoid UI hang in Registers Panel. 2025-12-19 13:16:39 +00:00
dragonmacher 0e5095ad9f GP-6254 - Fixed NPE in function graph middle-mouse highlighter 2025-12-18 15:49:13 -05:00