Merge sort uses cmp (a, b) < 0 for its first test branch, and insertion
sort cmp (a, b) > 0 ; which means the 0 boundary goes in one case in one
branch, and in the other sort function in the other branch.
It makes it possible to support compare function that return true/false
instead of -1/0/1; although this isn't an acceptable use of
RListComparator, this prevents future bugs from appearing, because this
works with insertion sort, but not merge sort.
The main advantage of this patch is that both sort functions should sort
equal elements the same way. This stability is important for zignatures
for example.
libr.a is built with all the files required to build against r2, so that
includes also SDB. As SDB already has a file named json.c, the new json
parser in r_util collides with it.
* Fail if ASN1 object is not ObjectID
* Fail if CMS contentType is NULL
* Fail if SpcAttributeTypeAndOptionalValue type is NULL
* Fail if cms contentType is not spcIndirectDataContext
* Use strcmp and r_return_val_if_fail
* Assert only on function arguments, not their contents
Co-authored-by: phakeobj <phakeobj@users.noreply.github.com>
* Implement `pde` to disassemble following code execution
* Fix `asm.filter=1` with `scr.color=0`
* Fix cache not being used
* Share read and write file permissions on Windows
* Use CreateFileW in r_sandbox_open on Windows and fix file permissions
* Fix opening nul and O_RDWR
* File creation flags cannot be combined on Windows
* Share write in r_file_mmap_windows
* Annotation for function name (#17204)
* Annotations for Constant Variables and Global Variables for the decompiler (#17281)
* Annotation For Function Variables (#17375)
* function variable annotation added (includes local variable and function parameter)
* API for checking if an annotation is a reference or function variable. (#17386)
* Update docs in annotate code API (#17397)
* Unit tests for annotated code API (#17403)
* add `acg` - printing class hierarchy graph
* Move the printing into the cmd_anal.c from returned RAGraph
* Change API to return Graph and transform it to AGraph when printing is necessary
* Move graph to agraph into agraph module, move generic node structure to rgraph, removing unnecessary dependency
* Move RGraphNodeInfo related functions to graph.c
* Change `fork_and_ptraceme` to start debuggee with rarun2 profile on Linux & Mac
* Add two new commands `doe` and `doe!` to show and edit rarun2 startup profile
* Fix `r_run_parse` to read last line
* Avoid duplication of SDB headers in libr/include
SDB is an external project and as such it should live in shlr. However,
for simplicity in dealing with the include flags, the SDB headers were
copied in libr/include as well. This patch just keeps the SDB files
confined in shlr/sdb and make sure various r_* libs use the headers from
there.
* Fix pkgconfig file generation
* Do not check with r_return_ if the convention is present
Let's just assume the NULL default in such a case, so that architectures
for which we don't have a defined calling convention can still be
processed somehow by the analysis code. It won't be precise, but it's
better than nothing.
Also add a warning message so users are aware when the calling
convention is not defined.
* Fix oob-read when # is at the end of the cmd string
* Do not set TMPDIR when the new value is the empty string
When TMPDIR is set to empty value, clang+ld behaves in weird ways and
you cannot compile files from within the r2 shell (e.g. when using #!c
or #!cpipe)
* Use meson and add -lasan to pkgconfig files when sanitizer are used
* Check for ferror(), not only for feof()
Some files could not be read and would create an infinite loop during
the execution of r_file_slurp. This patch fixes that issue: when an
error occur at read time, it detects it with ferror(fd) and it returns
an empty buffer.
* Call ferror inside loop and fclose fd
* div by 0
* null deref in r_bin_dex_free
* null deref in get_object
* memset to 0 new capacity if we increase, to avoid garbage in the vector.
* null deref in extract_sections_symbols
* printfs. and moved insert after null deref check.
* moved check before adding the cobj into list.
* moved i definition inside if.
* using r2 macros.
* changed condition to sym_size == 0
* changed condition to if (ret) do smth
* refactoring
* code formatting
* added r_pvector_new_with_len to fix issue with bad usage of RPVector
* using r_pvector_new instead DUP
* Removed check which doesn't make sense and formatting
Co-authored-by: Giovanni Dante Grazioli <giovanni.dantegrazioli@nbs-system.com>
* Make sure meson can build with `system` = `android`.
* Add support for binr/blob in meson build
* Add also r_util as dependency
* Create sdb_version.py to get the SDBVER value from config.mk
* Set unknown sdb version if something fails
* Add `--without-dylink` configure flag to disable "libdl" features
* Add "WANT_DYLINK" option in Meson buildsystem
Co-authored-by: pancake <pancake@nopcode.org>