An snprintf with the same source and destination buffer caused the buffer to
be read as an empty string.
To quote the Linux Manpages project:
C99 and POSIX.1-2001 specify that the results are undefined if a call to
sprintf(), snprintf(), vsprintf(), or vsnprintf() would cause copying to
take place between objects that overlap (e.g., if the target string array
and one of the supplied input arguments refer to the same buffer).
* Fully implement the asm.bf assembler and disassembler
- Syntax fixed. disassembled code can be reassembled
- Added support for misd instructions (multiple instruction single data)
rasm2 -a bf 'add [ptr], 8;trap,64;nop;poke;'
- Added breakpoint and code analysis plugins for bf
- *mem++ != mem[0]++
- Full register get/set support
- Support for step and continue-until-syscall
- Work in progress breakpoint support
* Added bfvm_reset() hooked to plugin->kill
* Enhacements in r_core and r_debug for better debugger support
- Added plugin->step_over delegate
* Split core/cmd.c into disasm.c and core/visual.c into vmenus.c
* Fix some warnings reported by valgrind
* Chop instructions disassembled by udis86
* Fix visual prompt display in debugger mode
* Added 'pdi' and 'pdf' commands
- Used to print just instructions or lengths
- Documented via 'pd?'
* Added initial work on a test suite for r2
- Spot a crash!
- Remove plugin prefixes
- It was unnecessary complicated
- Remove unused code
- Some RAPIfication
- Rename _set( methods into _use(
- Simplify some string processing
- r_parse is working again
- Sync all those api changes in r_core
- External static plugin lists moved to .c
- Fix some cast-related segfaults in core
* Review the r_search API
- RAPIfication
- Allow to pass NULL as binmask
- Added TODO with some more ideas
- Managing breakpoints for the core
- Initial work on the support for breakpoints
for the r_debug plugins
* Adding some dummy work for context support in r_anal
* Make asm_set_bits check per-plugin supported bit sizes
- Now asm plugins have 'arch' and 'bits' attributes
- Used to setup default callbacks for undefined 'assemble' callback
- Also used to avoid setting asm.bits eval variable to invalid values
- We need a way to display all this data
* Added DEFAULT_ARCH in config.h to setup default arch to asm and anal
* Added r_config_set_i_cb()
- Make r_config_set restore value when callback is called and fails
- asm.bits now has a config callback
* Added _LAST in some r_anal enums
* Make rabin2 support 'arm' instead of 'asm_arm' for -a (autoprefix 'asm_')
* Some build fixtures
* Static plugins are configurable in libr/config.mk and libr/config.h