Commit graph

306 commits

Author SHA1 Message Date
NOT XVilka
4880588377
subprojects/gdb: fix RLE decoding (#6495)
Co-authored-by: Anton Kochkov <anton.kochkov@gmail.com>
2026-06-15 01:31:01 +08:00
wargio
e2a841d319 Fix unused-but-set-variable 2026-06-01 01:45:59 +08:00
Khairul Azhar Kasmiran
486dc11548
Rename capstone-6.0.0-alpha8 patch dir to capstone-6.0.0-alpha9 (#6446) 2026-05-31 20:52:43 +08:00
billow
9e7cc02fcf
Update Capstone and add M68k ColdFire support (#6399)
* Update Capstone and add m68k ColdFire support
* Fix test 'core regs linux m68k'
* Add M68K ColdFire integration coverage
* Update Capstone v6 to version 6.0.0-Alpha9
* Refactor CPU mode detection to use case-insensitive string comparison
* Update Capstone next revision to 3df6ff0
2026-05-31 16:15:56 +08:00
Rot127
8a76ab1733
Bump demangler to latest commit + fix useless code (#6381)
* Update libdemangle to fix reachable double free
* Get some return on an energy burning loop.
2026-05-18 23:20:19 +08:00
Rot127
598e4c0ce8
Use libdemangle commit with fixed CVE. (#6340) 2026-05-12 09:41:04 +08:00
Florian Märkl
f1251293a4 Patch zydis to work on OpenBSD/sparc64
This combines the following patches already sent upstream:
https://github.com/zyantific/zycore-c/pull/97
https://github.com/zyantific/zydis/pull/603

...and introduces a workaround to fix segfaults caused by accesses into
arrays of the packed ZydisShortString struct. The final solution will
likely be an upstream rework of this structure:
https://github.com/zyantific/zydis/issues/263

Finally, we adjust the condition for when ZydisStringAppendHexU32 is
used, since it is not defined by default. This is already solved more
elegantly in Zydis development upstream, but it requires more changes,
so we stick to a smaller patch on top of the latest release for now.
2026-05-11 11:54:02 +08:00
Florian Märkl
1cb5859f8e Apply patches/fix_zydis_amalgamated_riscv32_build to subproject
We already vendor a patched zydis and this fix should be available to
everyone, not only CI.
2026-05-11 11:54:02 +08:00
Naren Sirigere
00b8496bf0
librz/arch: add RS08 and HCS12X as new M680X CPU types (#5977) 2026-05-05 23:35:15 +08:00
billow
4e7c9af04c
Update capstone for M68k (#6309)
* Bump capstone to the latest next
* Add capstone M68k changes
* Update M68k instruction size and fix tests
* Add M68K assembly instruction definitions for 68000, 68020, 68030, 68060, and CPU32
* Update maxopsz to 22 for bflt, hunk, and smd formats
* Add M68k ELF coredump parsing support
2026-05-05 03:16:53 +08:00
Giovanni
6b9cfea04c
Fix qnx out of bound reads and writes. (#6292) 2026-04-28 12:16:34 +00:00
Khairul Azhar Kasmiran
c8878d3139
Convert %ll format specifiers to PFMT64 (#6267)
* Convert `%ll` format specifiers to PFMT64
* Remove ` ""` at end of some PFMT64
2026-04-22 05:57:04 +08:00
bubblepipe
bb76233c2e
Refactor windows heap parser (#6014) 2026-04-10 15:46:11 +08:00
SSharshunov
f007f5f309
Fix leak of CS structs in librz/arch/p/analysis/analysis_riscv_cs.c (#6133) 2026-04-06 11:58:25 +00:00
Khairul Azhar Kasmiran
815c86a8f7
Inline rz_list_iter_set_data() and shorten it to rz_list_set_val() (#6131) 2026-04-02 06:04:54 +08:00
NOT XVilka
e9dd764f87
refactor: remove unused mpc subproject (#6091)
Co-authored-by: Anton Kochkov <anton.kochkov@gmail.com>
2026-03-25 20:30:15 +08:00
Ashish Kumar
f6344debf8
librz/hash: add murmur3 hash function (without keys support) (#6002) 2026-03-25 15:46:37 +08:00
Jagath P
3e39942e70
Added disassembly support for cBPF (#5988)
* Added disassembly support for BPF

* Added the analysis plugin file and test file for classic bpf
2026-03-24 16:56:25 +00:00
billow
004653cc87
bump rz-libdemangle to ba048810ee76da1f2b4c62e408f13d5bcb937b87 (#6056) 2026-03-21 02:47:43 +08:00
Farhan Saiyed
e4464a1c55
blake2 hash support (#5995) 2026-03-06 22:17:59 +08:00
Suleif
5897f30c25
Fix a buffer overflow in gdbr_parse_processes_xml (#5973)
* Fix a buffer overflow in gdbr_parse_processes_xml, and added a regression test for it
2026-03-04 01:27:08 +08:00
Thomas Strömberg
a65be1e6cd
Fix Illumos/Solaris platform support (#5972) 2026-02-27 13:01:40 +08:00
Naren Sirigere
ab82fc9fa3
Add SerenityOS Support (#5905)
* Add serenity to librt whitelist

This patch adds serenity to the list of operating systems that dont require librt to be explicity linked

* Disable PCRE2 JIT compilation

* Remove resolve_heap_tcache implementation

Serenity doesn't implement thread caching in its memory allocator, so tcache resolution is not applicable.

* Define rz_sys_pipe as pipe2 for serenity

* Add serenity identifier to rz_types.h

Define serenity as __UNIX__ like, and set RZ_SYS_OS to 'serenity' if __serenity__ identifier is defined

* Add zlib dependency for libzip
2026-02-23 16:34:05 +00:00
Rot127
42dbdd7900
Fix meson build warning about empty config data. (#5957) 2026-02-22 21:10:09 +00:00
billow
2718026d27
Update libdemangle to revision 2d1d726 (#5949) 2026-02-21 03:15:18 +08:00
billow
b4ca5641e6
Update libdemangle (#5850)
* Update libdemangle to revision 37f9e9e
* Fix: C++ demangler plugin definition
* Fix: update tests
2026-02-19 12:20:29 +08:00
مصطفي محمود كمال الدين
158765163a
librz/arch: rewrite the RISC-V support to use Capstone (#5482)
* remove GNU plugin and remove the pseudo-assembly test
* modernize Capstone-based RISC-V plugin and add huge test coverage
2026-02-17 03:35:37 +08:00
Khairul Azhar Kasmiran
272c8d1015
glibc_versions.h: Work around MSVC error C4576 (#5919) 2026-02-14 23:37:33 +08:00
Khairul Azhar Kasmiran
236f933f31
Cast some RzHeapChunkLayout initializer values for shiboken6 (#5918) 2026-02-14 18:59:23 +08:00
bubblepipe
7f57ae2c70
heap: refactor glibc heap parser (#5880) 2026-02-12 03:20:28 +08:00
bubblepipe
4aab82b9b2
heap: jemalloc parser refactor, add FreeBSD support (#5864) 2026-02-05 00:44:27 +08:00
Naren Sirigere
f6c4f76380
Updated to pcre2 10.47 (#5830) 2026-01-27 14:44:51 +00:00
bubblepipe
dca635cde9
Arch-agnostic jemalloc heap parser (#5828) 2026-01-27 15:31:48 +08:00
NOT XVilka
3ed43c4c77
Update Capstone v6 from Alpha5 to Alpha6 (#5842)
Co-authored-by: Anton Kochkov <anton.kochkov@gmail.com>
2026-01-27 12:08:05 +08:00
bubblepipe
f28915f246
heap: refactor jemalloc 4.5.0 heap parser (#5800) 2026-01-19 23:45:20 +08:00
bubblepipe
2ee0d4a42b
heap: add support for jemalloc v5.3.0 heap parsing (#5744) 2026-01-18 16:44:57 +08:00
bubblepipe
912513fc6f
heap: refactor parser for jemalloc 4.5.0 (#5722)
* replace size_t -> GHT, ssize_t -> GHST, void * -> GHT
* delete subprojects/rzheap/rz_jemalloc/jemalloc_* as they are included inside subprojects/rzheap/rz_jemalloc/jemalloc.h
* macro wrapper for jemalloc code

tested working for arena_run_t

echo '#include <rz_heap_jemalloc.h>' | gcc -E -I librz/include -I subprojects/rzheap -I build -x c - 2>&1 | grep arena_run_t

* replace all struct definition t inside GH(t)\
\
DIR="subprojects/rzheap/rz_jemalloc/internal"
SYMBOLS="symbols"
while read -r type; do
    [ -z "$type" ] && continue
    echo "Replacing: $type -> GH($type)"
    perl -pi -e "s/(?<!GH\()(?<![A-Za-z_])${type}(?![A-Za-z_0-9])/GH(${type})/g" "$DIR"/*.h
done < "$SYMBOLS"
2026-01-07 00:24:12 +08:00
Giovanni
827a0ed1bb
Fix doxygen comments to use \<something> notation (#5720) 2026-01-02 19:05:37 +08:00
Maijin
07d3a812f7
subprojects: update libzip 1.11.4 (#5701)
Update libzip to 1.11.4

---------

Co-authored-by: Maijin <maijin21@gmail.com>
2025-12-30 05:29:39 +08:00
Khairul Azhar Kasmiran
b96202ad48
Rename rz_list_first() / rz_list_last() to rz_list_first_val() / rz_list_last_val() (#5654) 2025-12-20 17:08:59 +08:00
IndAlok
666d0ba8a0
Implement unified API for describing addresses (name+offset format) (#5571)
* core: Add unified API for describing addresses (resolves rizinorg#4993)
* core: Fix pxW and prompt tests by adding backward-compatible delta limit

This commit fixes the test failures caused by behavioral changes in the
unified address description API:

1. pxW tests failing (cmd_pxw, helloworld-gcc-elf):
   - The old pxW code had a hardcoded 8192 limit for flag delta
   - Added max_flag_delta option to RzAddrDescribeOptions
   - rz_core_addr_get_flag_offset() now uses max_flag_delta=-1 (8192 limit)

2. prompt settings test failing (test/db/tools/rz):
   - The old prompt code used spaces around +/- (e.g., 'entry0 + 1')
   - Added use_spaces_around_delta option to RzAddrDescribeOptions
   - Added rz_core_addr_get_flag_offset_prompt() for prompt display

* core/caddr: Add proper error handling and API improvements

- Add RZ_NONNULL annotations to helper function parameters
- Add null pointer checks after rz_str_dup() to detect allocation failures
- Change helper functions to return bool for error propagation
- Handle memory allocation failures in rz_core_addr_describe() by
  checking helper return values and cleaning up on failure
- Use RZ_STR_ISEMPTY macro for consistent empty string checks
- Extract rz_core_addr_description_to_pj() as separate API for
  converting RzAddrDescription to JSON format

* core: Add unified API for describing addresses (resolves rizinorg#4993)
 core: Fix pxW and prompt tests by adding backward-compatible delta limit

This commit fixes the test failures caused by behavioral changes in the
unified address description API:

1. pxW tests failing (cmd_pxw, helloworld-gcc-elf):
   - The old pxW code had a hardcoded 8192 limit for flag delta
   - Added max_flag_delta option to RzAddrDescribeOptions
   - rz_core_addr_get_flag_offset() now uses max_flag_delta=-1 (8192 limit)

2. prompt settings test failing (test/db/tools/rz):
   - The old prompt code used spaces around +/- (e.g., 'entry0 + 1')
   - Added use_spaces_around_delta option to RzAddrDescribeOptions
   - Added rz_core_addr_get_flag_offset_prompt() for prompt display
2025-12-10 19:11:31 +08:00
billow
7a77b8f7bd
linter: update clang-format installation to version 20 (#5451)
* fix: format with clang-format-20
* fix: fix clang-format linter with rewrite '^#define.*/\*.*\\$'
* fix: update clang-format to version 20 in workflows and documentation
* fix: add SPDX license information to .git-blame-ignore-revs
2025-10-12 08:02:03 +08:00
Rot127
92eff78276
librz/util: UTF-16/32 to UTF-8 conversion (#5431)
* Replace rz_str_utf16_to_utf8 with one matching the other string convert functions.
* Add rz_str_utf32_to_utf8
2025-10-05 19:16:53 +08:00
Khairul Azhar Kasmiran
811bd2e7b5
Revert -Wno-error cancel flag (#5408)
* Revert `-Wno-error` cancel flag
* Set `werror=false` in rizin-grammar-c subproject
2025-09-25 20:17:06 +08:00
NOT XVilka
58644c8fe2
subprojects: fix PCRE2 cross build (#5379)
Co-authored-by: Anton Kochkov <anton.kochkov@gmail.com>
2025-09-16 00:21:17 +08:00
Rot127
699c7d2dff
Improve performance of string search. (#5262)
* Make checks against defined Unicode points optional

* Allow to decode UTF-16 without writing the result.

* Remove PCRE2_NO_UTF_CHECK as default, since it can lead to undefined behavior.

* First refactor regex to support utf16 and utf32

* Add UTF-16-BE encoding function

* Add UTF-8 counting helper functions.

- One for counting the number of Unicode code points.
- The other to get the number of bytes required to represent the given UTF-8 string in UTF-16.

* Remove unused code

* Add UTF-8 to UTF-16 conversion function.

* Add type annotations

* Implement utf8 to utf32 string conversion

* Add UTF-16/32 versions of all other necessary regex functions for str search.

* Another regex refactor for utf16/32

* Add UTF16/32 regex matching tests.

* Implement still segfaulting (possibly JIT double usage) regex search.

* Duplicate match_first functions to reduce necessary branch predictions.

* Reduce number of required branches for encoding UTF16/32 to one.

* Duplicate match_all_internal functions to reduce necessary branch predictions.

* Fix too early free

* Only allocate match vector when needed.

* Fix: use code point size of buffer.

* Add missing return

* Normalize pointers to UTF16/32 strings to use proper code point with

* Also replace spaces with in utf16/32

* Add an additional host endian tests for UTF16/32 string encodings.

* Ensure thread savety.

JIT compiled patterns need to be owned by a single thread.
For the search we need to clone it.

JIT matching structures are optionally cloned as well.

* Enforce NO_UTF_CHECK in regex search.

This improves performance and currently is
default because we always match on binary data.

* Fix matching of UTF strings which are not suported by direct buffer matching.

PCRE2 only supports matching against memory which is aligned
to a code point width of the encoding.

These changes prevent taking the fast (direct matching with PCRE2) path
and use the slow string search path if the alignment doesn't match
the UTF string encoding.

To not complicate the change and additional alignment member
is added to each searched string in the search collection.

* Create search hit description on the stack

* Unset complete JIT matching if user provided custom jflags.

* Document what passing NULL to copy function pointers does.

* Replace the retarded idea of tracking offsets with a hashmap with a linear buffer.

This improves performance something like 10x.

* Remove const for the non-JIT builds.

* Remove additional flags for skip checking.

It is not needed because each decoded character is checked for printablity below anyways.

* Enfore no setup of IO mem with 0xff

* Fix: Set JIT complete flag for multi regex patterns

* Fix heap.

* Add note about worsed performance path.

* Fix unit test with string terminated by undefined code point.

* Run clang-format

* Fix order of arguments

* Add warning about string search with encoding=guess to tests.

* Fix string lengths, they no longer count the final invalid code point.

* Fix endian macro on Windows

* Fix NULL dereference

* Fix number tests

* Use endianness check not dependent on stdbit

* Fix type annotations.

* Reintroduce rz_str_len_utf8char

* Fix command description.

* Fix and unify RZ_SYS_ENDIAN macros.

- Don't allow unhandled architectures anymore.
- Check endianness for Sparc and PPC using non GCC/Clang compilers.
- Fix several endianness checks using the value instead of the macros.

* Fix tests

* Apply review comments.
2025-09-11 22:29:20 +08:00
Rot127
095d53a075
subprojects: bump to PCRE2 10.46 (#5333) 2025-09-02 09:51:15 +08:00
Khairul Azhar Kasmiran
369f290ac4
Add -Wno-error to relevant meson.build and unpin meson (#5327) 2025-08-29 20:46:40 +08:00
Giovanni
d933ccc4e5
Remove rz-libswift to avoid embedding C++ projects. (#5320)
* Remove rz-libswift to avoid embedding C++ projects.
* Fix test
2025-08-27 10:38:10 +08:00
Rot127
72bf85309b
Bump Capstone to latest next (v6-Alpha5 + two fixes). (#5308)
- Fix LoongArch absolute address usage.
- Sparc: update to use new Auto-Sync module.
- Sparc: Fix unconditional delayed branch instructions with annul bit.
2025-08-22 09:29:04 +08:00