diff options
author | Tomas Vanek <vanekt@fbl.cz> | 2018-12-18 17:17:33 +0100 |
---|---|---|
committer | Matthias Welwarsky <matthias@welwarsky.de> | 2019-02-07 07:51:50 +0000 |
commit | 7a3eec2b4d9dbb9533acfb271dbe91afa0727c8e (patch) | |
tree | 8b8d19f57f6f12dec1c1c0b728f04f1c6309bbbf /src/target/stm8.c | |
parent | 0d48104e03320112db1e8825d0700ea8be735cef (diff) | |
download | riscv-openocd-7a3eec2b4d9dbb9533acfb271dbe91afa0727c8e.zip riscv-openocd-7a3eec2b4d9dbb9533acfb271dbe91afa0727c8e.tar.gz riscv-openocd-7a3eec2b4d9dbb9533acfb271dbe91afa0727c8e.tar.bz2 |
target algo: do not write reg_param if direction is PARAM_IN
Without this change xxx_start_algorithm() writes all register
parameters no matter of their direction. It usually results
in writing of uninitialized reg_params[].value - possibly
reported by valgrind.
While on it fix the wrong parameter direction in
kinetis_disable_wdog_algo(). This bug did not have any
impact because of unconditional write of reg_params.
Change-Id: Ia9c6a7b37f77d5eb6e5f5463012dddd50471742b
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: http://openocd.zylin.com/4813
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
Diffstat (limited to 'src/target/stm8.c')
-rw-r--r-- | src/target/stm8.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/target/stm8.c b/src/target/stm8.c index 39fbb50..f5df248 100644 --- a/src/target/stm8.c +++ b/src/target/stm8.c @@ -1897,6 +1897,9 @@ static int stm8_run_algorithm(struct target *target, int num_mem_params, } for (int i = 0; i < num_reg_params; i++) { + if (reg_params[i].direction == PARAM_IN) + continue; + struct reg *reg = register_get_by_name(stm8->core_cache, reg_params[i].reg_name, 0); |