On February 2, 2020, GitHub will capture a snapshot of every active public repository, to be preserved in the GitHub Arctic Code Vault. This data will be stored on 3,500-foot film reels, provided and encoded by Piql, a Norwegian company that specializes in very-long-term data storage. The film technology relies on silver halides on polyester. This medium has a lifespan of 500 years as measured by the ISO; simulated aging tests indicate Piql\u2019s film will last twice as long.
Release Notes
Version: 4.2.0
From: 4.1.1
To: 4.2.0
Commits: 175
Contributors: 23
Authors
- Anton Kochkov xvilka@gmail.com
- David CARLIER devnexen@gmail.com
- David Carlier devnexen@gmail.com
- EggUncle cicadashadow@gmail.com
- Florian M\xe4rkl info@florianmaerkl.de
- Guillaume Valadon guillaume.valadon@netatmo.com
- GustavoLCR gugulcr@gmail.com
- Itay Cohen itaycohen23@gmail.com
- Jeong Jihoon 32758936+jishoon@users.noreply.github.com
- Khairul Kasmiran kazarmy@gmail.com
- K\u0101rlis Se\u0146ko karlis3p70l1ij@gmail.com
- Riccardo Schirone sirmy15@gmail.com
- Sylvain Pelissier sylvain.pelissier@gmail.com
- Theodore Dubois tblodt@icloud.com
- Vane11ope vane11opeschw33tz@gmail.com
- d4em0n n0psledbyte@gmail.com
- dodococo deepakchethan@outlook.com
- dok 6414482+dokthar@users.noreply.github.com
- itayc0hen itaycohen23@gmail.com
- pancake pancake@nopcode.org
- vane11ope vane11opeschw33tz@gmail.com
- yossizap yossizap@gmail.com
- \xd3scar Carrasco oxcabe@gmail.com
Changes
anal
- Fix #15091 – Make 0 fcnsize warning more meaningful and verbose-only (#15866)
- Fix jumptable size #13812 (#15822)
- Fix afs not working without rettype
- Fix a null deref in fcn_recurse
- Remove Custom Analysis for Java (#15817)
- Refactor RAnal Basic Blocks and Functions (#15169)
- Change RAnalBlock.size to ut64
- Make type matching independent of bb list order
- Improve the op.type text representation when unhandled modifiers are used
- Remove dupped basic block analysis in core (#15714)
asm
- ‘push rip’ is not a valid instruction
bin
- Improve realname support for symbols (#15702)
- Add test for #15727 (smd strings) (#15777)
- r_str_unescape: Support all izz esc seqs (#15770)
- Force read permissions on all load maps in ELF
- Initial implementation of LX/LE file plugin
cons
- Implement ar, and dr, commands to list registers in table format
- Fix #14424 – Handle ~ operator in the
ms
shell - Implement r_strbuf_slice and use it in panels to solve a glitch
core
- Add ?V0 ?V1 ?V2 – for semver support
- Upgrade to acr-1.8.1 to get semver support
- Add pkgname in RLibStruct for r2pm on outdated plugins
debug
- Added reverse step and continue support to gdbr
- Moved drC to drpC for profile comments and added drC for reg comments
- Added register specific comment parsing to register profiles
- Fix crash caused by rebasing a file without sections
- Set cfg.debug to true before running oodf in doof
- Fix multithreaded breakpoint behavior in linux
- Attach to new linux threads on creation
- Fix debugger build on linux-s390x
- Always unset bps after continue and step hard
- Add detailed location info to dpt using pc instead of path
- Add packed sizes to gdb vector registers and improve mapping of target description to r2 regs
- Fix drt not printing non 64bit/32bit registers and flags
- Refactor breakpoint validation (#15754)
-
- Refactor breakpoint validation
- Revert “Validate bp addr on rebase and restore instead of preventing creation
- Validate bp addr on rebase and restore instead of preventing creation
- Fix hardware bp restoring and fix hwbp repeating errors
- Add location in file to linux dpt output
- Fix var rebasing by saving regname info
- Refactoring ptrace register write for BSD
- Implement bsd_thread_list for FreeBSD
- Fix reopening of windows debug after detaching not working
- Fix windows breakpoint rebasing
- Prevent the restoration of disabled breakpoints
diff
- Add explicit fingerprint_size to RAnalFunction
- Add ccdd command to diff decompiler output of two functions
- Add ccdd command to diff using decompiler (experimental)
disasm
- Remove realname from strings (#15841)
- Show flag realname when finding a function and realname is enabled
- Hide flag comments when realname is shown (#15801)\xa0
- asm.symbol: Improve code/test a bit more (#15798)
- asm.symbol: Fix flag name when disasm from non-flag addr with no anal
esil
io
json
- Use PJ api in the output of isj and show realname
- Fix issues in iCj, drlj and arlj
- Fix izzzj json output
- Fix gen json dwarf with pj api (#15755)
- Fix is.j iEj and iaj json validation issue in r2 — (#15724)
panels
- More fix for resizing issue (#15844)
- Performance improvements for the cursor mode
- Code clean-up and a little performance improvement for decompiler cache
- All the available decompilers outputs will be properly shown with this
- Make the decompiler cache work properly
- Add H key for cursor mode which works like the one in vim
- Implemented pmj (#15864)
r_debug
- Debug, BSD systems refactoring
search
signatures
- Apply types on matching zignature data
table
- Add f, command to list flags in table format
test
- Fix V testsuite build with latest V from git (#15867)
- Convert cmd_pd* tests from <<KEYWORD to <<EOF (#15823)
- Support extras tests in r2r.v (#15821)
- r2r.v, -j 0: Allocate 1 job per test (#15807)
- Improve unit test execution using the new V suite and makefiles
- Many improvements in the V testsuite (#15722)
tests
- r2r.v, -j 0: Allocate 1 job per test (#15807)
util
- Fix r_list_set_n() to allow empty element (#15820)
visual
- Limit panel tabs to 9 to avoid keybinding and click issues
windows
- Fix reading on invalid process memory
To Review
- Release 4.2.0 – Arctic World Archive
- Fix resizing issue (#15863)
- Fix pkgname version check for real now (#15862)
- Enable V testsuite on GitHub CI (#15796)
- Enable V testsuite on GitHub CI
- Check version for pkgname correctly (#15860)
- dot can be null
- Using R2_VERSION_MAJOR/MINOR is wrong because they will be continuously updated and we want to check for exactly 4.2.0
- The version check logic itself was wrong
- Fix afb test (#15861)
- Fix #15833 – Only print pkgname if the plugin is for r2 >= 4.2
- Update/improve jmptbl size tests
- Use specific commit of V to avoid build issues
- A bit more picky fix
- Add test for afs without type
- Fix #15767 – Temporarily disable colors in drrj
- Fix warnings
- Update radare2-shell-parser
- Use void because we don’t do anything with the return value
- Coverity fixes
- Remove the wrong test
- More tests fixes
- Resizing works not perfectly yet but close
- Fix #15604: Convert all tests from <<KEYWORD to <<EOF
- Fix wrong tests (#15834)
- Add test for env variables boolification
- Introduce SETBPREF to handle “boolish” vars like asm.cmt.off
- Do not try to convert to true/false, as it breaks integer vars
- See discussion at #15681 .
- Unfortunately the change cannot be done for non-int vars only, because
- right now vars are not statically typed, so a var that is initially
- CN_INT can then become CN_STR if you set a string.
- Changing vars to assign them a static type when they are created would
- require a much bigger change and discussion.
- A bit of refactoring in r_config.h
- Move all version defines into r_version.h and handle it from meson too
-
- R2_VERSION_MAJOR
-
- R2_VERSION_MINOR
-
- R2_VERSION_PATCH
-
- R2_VERSION_NUMBER
- Mach-O io: mem leak fix proposal. (#15829)
- C89 Fixup for r_sign_fcn_types function (#15824)
- Fix error:
for
loop initial declarations are only allowed in C99 mode - Implement new zignature types format
- Adapt zignature types deserialization to new format
- Integrate fcn types when zignatures match
- Use node->i_value in the log.level/log.traplevel callbacks
- Basic Blocks are now global instead of owned by a single function.
- Fix dbg_bps tests that always succeeded (#15763)
- Approved-by: Riccardo Schirone sirmy15@gmail.com
- This feature only works with server implementations that have ReverseStep
- and ReverseContinue enabled, such as rr. The official gdbserver doesn’t support it.
- Remove opt->sz checks and operations in r_bin_open_buf
- opt->sz is not used anyway in r_bin_open_buf, so there’s no need to
- check its value or compute it.
- Fix last coverities related to cbin
- Add test for a8 command
- Some more coverity fixes (#15802)
- Implement pcV command to print byte array in Vlang
- Fix a small bug by removing some useless codes (#15795)
- Initial implementation of libname for flags in imports
- Initial support for PE and real flag
- Read libname for PE exports
- implement pj for imports
- Remove imp. prefix from symbol names
- Fix r_core_bin_impaddr()
- Fix some mdmp import stuff
- Print libname in ii
- Fix some imp. checks and reloc meta
- Fix r_bin_filter_sym() for imports
- Use realname for noreturn check
- Fix asm.flags.real for direct calls
- Fix realname for direct calls with fcn
- Fix resolving names from ordinal
- Co-authored-by: Florian M\xe4rkl info@florianmaerkl.de
- Add sha256 hash to “it”
- Refix #15331 (-nn filename with @) (#15788)
- C prototypes fixed
- Fix broken AppVeyor due to rejected apostrophes (#15785)
- Some coverity fixes
- Third fix attepmt for musl builds
- Second fix attempt for Alpine/musl builds
- Aim to fix the alpine build
- The plugin wouldn’t properly trace breakpoint hits on different threads
- since they weren’t switched to and the events weren’t always handled.
- Also, since the breakpoints are removed after they are found in one of the
- threads, it’s best to stop all threads for now even if dbg.threads is false.
- New threads were only added after being attached to manually or if
- dbg->trace_clone was true. dbg->trace_clone stops debug and switches the
- new thread now.
- Fix a format string vuln in the disassembly with comments (#15783)
- Add s390x reg profile
- Add missing pc register
- Use gregset instead of regset
- ww: Support esc seqs (#15780)
- Breakpoints were left in disassembly after a signal/break and there
- are probably other cases that may lead to it.
- Offset for each panel was not correct (#15778)
- Add null to pj and use for relocs (#15776)
- Add pj_null() and pj_knull()
- Print reloc name as null in json if not available
- Omit reloc name in json
- Improve shell injection check
- Fix Coverity fixes (#15779)
- Some coverity fixes
- Fix #15331 – rabin2 -rk code injection issue (#15678)
- Rewrite r_str_unescape() using switch
- Do not compile radare2-shell-parser by default (#15769)
- Last release (4.1.0) did compile it by default, but the build requires
- internet access to download the repositories. For now, since the feature
- is anyway very experimental, we disable it at compile time so that
- distributions can just compile their packages without internet access.
- In the future we may want to use submodules or augment the release
- tarball to include the tree-sitter and radare2-shell-parser archives.
- Pass 64-bit sdb_fmt parameters as 64-bit (#15758)
- Fix double free in r_bp_del_index and other breakpoint index bugs
- Lack of cleanup in r_bp_del_all causing use after free in other dbi
- commands
- Copy paste error turning dbix into dbx
- Add dbi- command
- Allow dbi commands to operate with index 0
- izzzj: Use pj api (#15760)
- Some xmm registers were printed as fpu and bnd registers were shown in
- all drt categories.
- dr will still only show 64bit/32bit registers to avoid printing all
- of the flags and d/w/b register variants.
- This fixes situations that if a read contained even a byte inside invalid memory, the entire read would fail
- Added RCoreBind.syncDebugMaps() and RCoreBind.getDebugMaps() api
- Reenable db tests and add new tests to check validity
- Add perm check to isMapped and remove map sync to improve performance
- Fix two tests
- Add RCoreBind.isMapped() api
- This reverts commit e503bdd.
- This way it is possible to set breakpoints before starting debug through
- ‘db’ and the user will be notified when a breakpoint points to an
- invalid map.
- Instead of unsetting breakpoints they were set again without removing
- the previous drx values, which also caused the “Invalid DRX length (0)
- must be 1, 2, 4, 8 bytes” error because of the wrong len values.
- Also, when resetting twice, del failed since there weren’t any hw
- registers to delete, which caused the “hw breakpoints not yet
- Shows the module, offset and function name instead of showing the executable’s
- path for all threads
- Upgrade node-r2r 0.2.8 (#15751)
- Fix windows dp showing the parent’s path for all processes (#15741)
- Fix #15734 – Automatically download PDB file if pdb.autoload=1 (#15738)
- Automatically download PDB file if pdb.autoload=1
- Don’t re-download pdb if it already exists on the symstore
- Only download if file doesn’t exist
- Fix wrong filtering of equals sign on PDB enum define (#15745)
- Fix all PDB tests
- Update node-r2r 0.2.7 to solve the json lost promise issues
- Hide warning message
- Fix warnings
- Add a fortune (#15736)
- Fix Vdv start_off calculation (#15735)
- Fix #15691 harder (#15733)
- Fix #15691 – avoid reading invalid memory
- izz: Fix printing of string with backslash if str.escbslash=false (#15731)
- More improvements for the cmd tests using r2r.v (#15728)
- Fix #15717 – Update scroll panel when stepping with F7
- Fix infinite loop in panels – vttq (#15729)
- Check for error when analyzing instructions in vmenus
- Fix #15719: Reduce false negatives in ‘U’ strfilter
- Added path escape and unescape
- Unescape paths only if r_str_argv was successful
- Use r_str_replace instead of r_str_arg_(un/)escape to avoid breaking escaped filenames
- Fix debug and ‘o’ not being able to open paths with spaces #debug
- After starting debug the register deltas weren’t mapped to the same
- registers in remote and native debug. This made wrong registers appear
- as vars and in remote gdb none showed up since the remote’s list is much
- shorter than r2 reg lists.
- Kill some more tests using <<RUN
- Improve r2r.v quite a lot up to 0.2
- Delete stale temporal files in the unit test
- Use executable path instead of dbpath and more cleanup
- Move manpage and move old bins into the attic
- This api honors ansi escape characters
- Delete the use and definition of “eprint” (#15716)
- After release version bump
- Add sys/r2env.sh: Set up env for r2 in non-standard loc (#15696)
- Fix invalid JSON in rabin2 -j (#15709)
- Fix Field Seek in Visual Menus (#15710)
- Fix some warnings (#15705)
- Fix some warnings
- Remove unnecessary duplication
- Co-authored-by: Anton Kochkov xvilka@gmail.com
- Few warning build fixes proposal.
- attach_new_process was called instead of regular attach because the
- saved pid and tid in core->dbg weren’t reset before calling r_debug_select
- in a new session. Made sure this won’t be a problem when using dp= after
- dp- either.
- Calculate the diff ourselves since bp->delta is calculated with the
- dbg->bp->baddr at the time of breakpoint creation, which may not
- reflect the correct baddr and break the rebase.
- Previously, disabled breakpoints were restored and then hit during
- execution. The debug logic ignored them and continued but that’s
- an unnecessary slow down. To achieve this type of behavior the user
- should use tracepoints.
- Minor syntax issues in panels
- Use
v fmt
to indent the new testsuite - Change Semantics of r_rbtree_upper_bound() and simplify Iter Fcns (#15698)
- Remove RAnalBlock members only used in Java (#15679)
- Remove RAnalBlock members only used in Java
- Remove R_ANAL_BB_TYPE_(HEAD|BODY|LAST|FOOT)
- Fix a Test
- Fix afb+ help
- Try to test with PowerPC and SystemZ (#15452)
- When setting non-bool config var, set false/true if r_str_is_false()/_is_true() (#15681)
- When setting non-bool config var, set false/true if r_str_is_false()/_is_true()
- Fix for cmd_open tests
- Fix for cmd_print test
- Separate pure BSD calls into its separate compilation unit.
- Fix #15682 – Fix getting noreturn info from invalid addr (#15693)
- fix some crashes of the widget (#15694)
- fix some crashes of the widget
- JK moves the cursor by a page and g moves the cursor up to the first line, plus a few improvements (#15690)
Directly related posts: