riscv-openocd/src/target
Jean-Christian de Rivaz 740c3ec238 target start_algorithm: Don't copy the IN mem_params fix uninitialised value.
Fix the write only out params TODO on armv7m.c
Fix conditional move depends on uninitialised value.
It was detected while programming a LPC8Nxx with a FTDI adapter.
valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes
[...]
==8696== Conditional jump or move depends on uninitialised value(s)
==8696==    at 0x16E4D3: buf_set_u32 (binarybuffer.h:52)
==8696==    by 0x16E4D3: ftdi_swd_queue_cmd (ftdi.c:1206)
==8696==    by 0x18D76D: swd_queue_ap_write (adi_v5_swd.c:271)
==8696==    by 0x18E33B: dap_queue_ap_write (arm_adi_v5.h:382)
==8696==    by 0x18E33B: mem_ap_write (arm_adi_v5.c:420)
==8696==    by 0x197CD9: target_write_buffer_default (target.c:2176)
==8696==    by 0x2464B3: armv7m_start_algorithm (armv7m.c:383)
==8696==    by 0x246AEB: armv7m_run_algorithm (armv7m.c:330)
==8696==    by 0x19D846: target_run_algorithm (target.c:814)
==8696==    by 0x1DF3A6: lpc2000_iap_call.isra.3 (lpc2000.c:818)
==8696==    by 0x1E0CF6: lpc2000_erase (lpc2000.c:992)
==8696==    by 0x185BDF: flash_driver_erase (core.c:44)
==8696==    by 0x18650D: flash_iterate_address_range_inner (core.c:541)
==8696==    by 0x18650D: flash_iterate_address_range (core.c:567)
==8696==    by 0x18732F: flash_erase_address_range (core.c:584)
==8696==    by 0x18732F: flash_write_unlock (core.c:928)
==8696==  Uninitialised value was created by a heap allocation
==8696==    at 0x4C2BBAF: malloc (vg_replace_malloc.c:299)
==8696==    by 0x220EF9: init_mem_param (algorithm.c:30)
==8696==    by 0x1DF247: lpc2000_iap_call.isra.3 (lpc2000.c:777)
==8696==    by 0x1E0CF6: lpc2000_erase (lpc2000.c:992)
==8696==    by 0x185BDF: flash_driver_erase (core.c:44)
==8696==    by 0x18650D: flash_iterate_address_range_inner (core.c:541)
==8696==    by 0x18650D: flash_iterate_address_range (core.c:567)
==8696==    by 0x18732F: flash_erase_address_range (core.c:584)
==8696==    by 0x18732F: flash_write_unlock (core.c:928)
==8696==    by 0x18ACDF: handle_flash_write_image_command (tcl.c:457)
==8696==    by 0x1B7D99: run_command (command.c:623)
==8696==    by 0x1B7D99: script_command_run (command.c:208)
==8696==    by 0x1B7FD9: command_unknown (command.c:1033)
==8696==    by 0x2E2D37: JimInvokeCommand (jim.c:10364)
==8696==    by 0x2E3865: Jim_EvalObj (jim.c:10814)
==8696==
==8696== Conditional jump or move depends on uninitialised value(s)
==8696==    at 0x16E506: buf_set_u32 (binarybuffer.h:52)
==8696==    by 0x16E506: ftdi_swd_queue_cmd (ftdi.c:1207)
==8696==    by 0x18D76D: swd_queue_ap_write (adi_v5_swd.c:271)
==8696==    by 0x18E33B: dap_queue_ap_write (arm_adi_v5.h:382)
==8696==    by 0x18E33B: mem_ap_write (arm_adi_v5.c:420)
==8696==    by 0x197CD9: target_write_buffer_default (target.c:2176)
==8696==    by 0x2464B3: armv7m_start_algorithm (armv7m.c:383)
==8696==    by 0x246AEB: armv7m_run_algorithm (armv7m.c:330)
==8696==    by 0x19D846: target_run_algorithm (target.c:814)
==8696==    by 0x1DF3A6: lpc2000_iap_call.isra.3 (lpc2000.c:818)
==8696==    by 0x1E0CF6: lpc2000_erase (lpc2000.c:992)
==8696==    by 0x185BDF: flash_driver_erase (core.c:44)
==8696==    by 0x18650D: flash_iterate_address_range_inner (core.c:541)
==8696==    by 0x18650D: flash_iterate_address_range (core.c:567)
==8696==    by 0x18732F: flash_erase_address_range (core.c:584)
==8696==    by 0x18732F: flash_write_unlock (core.c:928)
==8696==  Uninitialised value was created by a heap allocation
==8696==    at 0x4C2BBAF: malloc (vg_replace_malloc.c:299)
==8696==    by 0x220EF9: init_mem_param (algorithm.c:30)
==8696==    by 0x1DF247: lpc2000_iap_call.isra.3 (lpc2000.c:777)
==8696==    by 0x1E0CF6: lpc2000_erase (lpc2000.c:992)
==8696==    by 0x185BDF: flash_driver_erase (core.c:44)
==8696==    by 0x18650D: flash_iterate_address_range_inner (core.c:541)
==8696==    by 0x18650D: flash_iterate_address_range (core.c:567)
==8696==    by 0x18732F: flash_erase_address_range (core.c:584)
==8696==    by 0x18732F: flash_write_unlock (core.c:928)
==8696==    by 0x18ACDF: handle_flash_write_image_command (tcl.c:457)
==8696==    by 0x1B7D99: run_command (command.c:623)
==8696==    by 0x1B7D99: script_command_run (command.c:208)
==8696==    by 0x1B7FD9: command_unknown (command.c:1033)
==8696==    by 0x2E2D37: JimInvokeCommand (jim.c:10364)
==8696==    by 0x2E3865: Jim_EvalObj (jim.c:10814)

Change-Id: I50f9a8c4516b686cf62ac3c76f47c53465e949da
Signed-off-by: Jean-Christian de Rivaz <jcamdr70@gmail.com>
Reviewed-on: http://openocd.zylin.com/4811
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
2019-02-07 08:01:25 +00:00
..
openrisc server: free strduped port numbers 2018-03-15 17:08:53 +00:00
riscv target algo: do not write reg_param if direction is PARAM_IN 2019-02-07 07:51:50 +00:00
Makefile.am esirisc: support eSi-Trace 2018-12-12 08:47:44 +00:00
aarch64.c aarch64: support for aarch32 ARM_MODE_SYS 2019-01-30 09:01:59 +00:00
aarch64.h aarch64: add 'maskisr' command 2018-01-16 09:05:41 +00:00
adi_v5_jtag.c arm_adi_v5: rewrite dap_to_jtag and dap_to_swd 2019-01-30 14:29:10 +00:00
adi_v5_swd.c arm_adi_v5: rewrite dap_to_jtag and dap_to_swd 2019-01-30 14:29:10 +00:00
algorithm.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
algorithm.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
arm.h target/aarch64: add support for multi-architecture gdb 2019-01-08 10:00:09 +00:00
arm7_9_common.c target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
arm7_9_common.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
arm7tdmi.c target/arm: add support for multi-architecture gdb 2019-01-08 09:59:42 +00:00
arm7tdmi.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm9tdmi.c target/arm: add support for multi-architecture gdb 2019-01-08 09:59:42 +00:00
arm9tdmi.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm11.c target/arm: add support for multi-architecture gdb 2019-01-08 09:59:42 +00:00
arm11.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm11_dbgtap.c Fix usage of timeval_ms() 2016-07-19 10:45:16 +01:00
arm11_dbgtap.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm720t.c target/arm: add support for multi-architecture gdb 2019-01-08 09:59:42 +00:00
arm720t.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm920t.c target/arm: add support for multi-architecture gdb 2019-01-08 09:59:42 +00:00
arm920t.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
arm926ejs.c target/arm: add support for multi-architecture gdb 2019-01-08 09:59:42 +00:00
arm926ejs.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
arm946e.c target/arm: add support for multi-architecture gdb 2019-01-08 09:59:42 +00:00
arm946e.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm966e.c target/arm: add support for multi-architecture gdb 2019-01-08 09:59:42 +00:00
arm966e.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm_adi_v5.c arm_adi_v5: rewrite dap_to_jtag and dap_to_swd 2019-01-30 14:29:10 +00:00
arm_adi_v5.h arm_adi_v5: rewrite dap_to_jtag and dap_to_swd 2019-01-30 14:29:10 +00:00
arm_cti.c target/arm_cti : export CTI APPPULSE and INACK register 2018-12-27 12:47:47 +00:00
arm_cti.h armv8: valgrind memleak fixes 2018-04-10 09:13:02 +01:00
arm_dap.c target/arm_dap: fix segmentation fault in 'dap info' cmd 2019-01-23 15:25:53 +00:00
arm_disassembler.c target/arm: Add PLD command to ARM disassembler. 2018-06-22 07:42:27 +01:00
arm_disassembler.h target: arm: disassembler: decode v6T2 ARM ISB instruction 2018-01-13 08:36:29 +00:00
arm_dpm.c target/cortex_a: remove duplicate code to read target registers 2018-11-06 12:42:24 +00:00
arm_dpm.h target/cortex_a: remove duplicate code to read target registers 2018-11-06 12:42:24 +00:00
arm_jtag.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
arm_jtag.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm_opcodes.h arm_opcode: fix encoding of ARMv5 breakpoint instruction 2019-01-23 15:26:39 +00:00
arm_semihosting.c Avoid null target->semihosting references. 2018-07-18 21:10:53 +01:00
arm_semihosting.h Rework/update ARM semihosting 2018-06-04 09:16:08 +01:00
arm_simulator.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
arm_simulator.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
armv4_5.c target start_algorithm: Don't copy the IN mem_params fix uninitialised value. 2019-02-07 08:01:25 +00:00
armv4_5.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
armv4_5_cache.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
armv4_5_cache.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
armv4_5_mmu.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
armv4_5_mmu.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
armv7a.c armv7a: ARMv7-A MMU tools 2018-11-08 09:10:09 +00:00
armv7a.h armv7a: ARMv7-A MMU tools 2018-11-08 09:10:09 +00:00
armv7a_cache.c target/armv7a_cache: add gdb keep-alive and fix a missing dpm finish 2018-08-08 10:36:28 +01:00
armv7a_cache.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
armv7a_cache_l2x.c target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
armv7a_cache_l2x.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
armv7a_mmu.c armv7a_mmu: s/LOG_ERROR/LOG_WARNING/ on address translation failure 2018-12-12 08:47:01 +00:00
armv7a_mmu.h armv7a: ARMv7-A MMU tools 2018-11-08 09:10:09 +00:00
armv7m.c target start_algorithm: Don't copy the IN mem_params fix uninitialised value. 2019-02-07 08:01:25 +00:00
armv7m.h target, flash: prepare infrastructure for multi-block blank check 2018-04-10 06:16:40 +01:00
armv7m_trace.c target/armv7m_trace: Use prefix for enums 2018-07-19 10:49:24 +01:00
armv7m_trace.h target/armv7m_trace: Use prefix for enums 2018-07-19 10:49:24 +01:00
armv8.c aarch64: support for aarch32 ARM_MODE_SYS 2019-01-30 09:01:59 +00:00
armv8.h Add ARM v8 AArch64 semihosting support 2018-07-13 09:18:14 +01:00
armv8_cache.c aarch64: fix debug entry from EL0 2018-03-16 08:58:06 +00:00
armv8_cache.h aarch64: add cache handling functions 2017-02-10 14:01:39 +01:00
armv8_dpm.c aarch64: support for aarch32 ARM_MODE_SYS 2019-01-30 09:01:59 +00:00
armv8_dpm.h aarch64: fix debug entry from EL0 2018-03-16 08:58:06 +00:00
armv8_opcodes.c target aarch64: rework memory read/write to use 8/16/32 bit operations 2018-01-04 09:09:46 +00:00
armv8_opcodes.h Support AArch64 SIMD/FP registers read/write 2018-03-10 13:23:48 +00:00
avr32_ap7k.c target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
avr32_ap7k.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
avr32_jtag.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
avr32_jtag.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
avr32_mem.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
avr32_mem.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
avr32_regs.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
avr32_regs.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
avrt.c target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
avrt.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
breakpoints.c breakpoints: simplify the test to find a breakpoint 2018-06-04 09:17:14 +01:00
breakpoints.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
cortex_a.c cortex_a_poll: minor code factorization to enhance readability 2019-01-16 10:52:43 +00:00
cortex_a.h target/cortex_a: remove unused code controlled by "fast_reg_read" 2018-11-06 12:17:48 +00:00
cortex_m.c cortex_m: fix stepping on FPB rev 1 2019-02-04 10:25:44 +00:00
cortex_m.h target/cortex_m: do not use VECTRESET on Cortex-M0, M0+ and M1 2018-12-19 13:14:09 +00:00
dsp563xx.c target start_algorithm: Don't copy the IN mem_params fix uninitialised value. 2019-02-07 08:01:25 +00:00
dsp563xx.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
dsp563xx_once.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
dsp563xx_once.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
dsp5680xx.c target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
dsp5680xx.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
embeddedice.c Use timeval helpers 2018-01-25 16:43:49 +00:00
embeddedice.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
esirisc.c esirisc: support eSi-Trace 2018-12-12 08:47:44 +00:00
esirisc.h esirisc: support eSi-Trace 2018-12-12 08:47:44 +00:00
esirisc_jtag.c esirisc: support eSi-Trace 2018-12-12 08:47:44 +00:00
esirisc_jtag.h esirisc: support eSi-Trace 2018-12-12 08:47:44 +00:00
esirisc_regs.h esirisc: support eSi-RISC targets 2018-10-16 11:58:24 +01:00
esirisc_trace.c esirisc: support eSi-Trace 2018-12-12 08:47:44 +00:00
esirisc_trace.h esirisc: support eSi-Trace 2018-12-12 08:47:44 +00:00
etb.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
etb.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
etm.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
etm.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
etm_dummy.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
etm_dummy.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
fa526.c target/arm: add support for multi-architecture gdb 2019-01-08 09:59:42 +00:00
feroceon.c target/arm: add support for multi-architecture gdb 2019-01-08 09:59:42 +00:00
hla_target.c hla_target: fix adapter_poll() to preserve TARGET_DEBUG_RUNNING state 2019-01-27 20:58:03 +00:00
image.c target/image: Add support for S6 record in Motorola SREC files 2018-11-18 08:21:25 +00:00
image.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
lakemont.c target: lakemon: implement assert_reset and deassert_reset 2018-01-13 09:25:34 +00:00
lakemont.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
ls1_sap.c target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
mem_ap.c target/mem_ap: generic mem-ap target 2018-09-10 09:37:03 +01:00
mips32.c target start_algorithm: Don't copy the IN mem_params fix uninitialised value. 2019-02-07 08:01:25 +00:00
mips32.h target, flash: prepare infrastructure for multi-block blank check 2018-04-10 06:16:40 +01:00
mips32_dmaacc.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
mips32_dmaacc.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
mips32_pracc.c mips32, add support for micromips in debug mode 2017-05-08 18:03:28 +01:00
mips32_pracc.h mips32: inline functions in headers must be static 2017-07-07 09:54:35 +01:00
mips_ejtag.c mips32, use scan32 function for reading impcode/idcode. 2017-05-08 18:05:58 +01:00
mips_ejtag.h ejtag: added missing instructions. 2018-01-13 09:46:00 +00:00
mips_m4k.c mips_m4k: add optional reset handler 2018-07-31 15:54:28 +01:00
mips_m4k.h mips32: add micromips isa handling 2017-05-08 18:04:56 +01:00
nds32.c Rework/update ARM semihosting 2018-06-04 09:16:08 +01:00
nds32.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_aice.c target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_aice.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_cmd.c Fix GCC7 warnings about string truncation 2017-10-23 10:54:24 +01:00
nds32_cmd.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_disassembler.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
nds32_disassembler.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_edm.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_insn.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_reg.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
nds32_reg.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_tlb.c target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_tlb.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_v2.c target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_v2.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_v3.c target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_v3.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_v3_common.c target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_v3_common.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_v3m.c target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_v3m.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
oocd_trace.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
oocd_trace.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
quark_d20xx.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
quark_x10xx.c target: quark_x10xx: miscellaneous cleanups 2018-01-13 09:25:12 +00:00
register.c register: support non-existent registers 2018-10-16 11:57:53 +01:00
register.h tdesc: bitfields may carry a type 2018-03-27 09:15:27 +01:00
semihosting_common.c GDB fileIO stdout support 2018-07-13 09:18:21 +01:00
semihosting_common.h Rework/update ARM semihosting 2018-06-04 09:16:08 +01:00
smp.c helper: Code cleanup for hexify() 2016-12-08 12:34:53 +00:00
smp.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
startup.tcl gdb_server: run control fixes for vCont 2018-02-27 11:19:10 +00:00
stm8.c target start_algorithm: Don't copy the IN mem_params fix uninitialised value. 2019-02-07 08:01:25 +00:00
stm8.h stm8 : new target 2017-12-07 07:53:13 +00:00
target.c target: do not allow 'target create' after init 2019-01-27 20:59:54 +00:00
target.h Permit null target on TCL connection 2018-11-13 07:02:58 +00:00
target_request.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
target_request.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
target_type.h gdb_server: add support for architecture element 2018-10-16 11:58:10 +01:00
testee.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
trace.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
trace.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
x86_32_common.c x86_32_common: fix some warnings 2018-01-30 07:34:32 +00:00
x86_32_common.h target: lakemon: implement assert_reset and deassert_reset 2018-01-13 09:25:34 +00:00
xscale.c target/arm: add support for multi-architecture gdb 2019-01-08 09:59:42 +00:00
xscale.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00