diff options
author | Paul Fertser <fercerpav@gmail.com> | 2018-01-13 17:24:37 +0300 |
---|---|---|
committer | Tomas Vanek <vanekt@fbl.cz> | 2018-03-12 14:10:18 +0000 |
commit | 6c6b42664a460da505a55c9062708fe314a9fcd8 (patch) | |
tree | ba9336f71d2ee626465579bfbed4a5796370e9b8 /src/jtag | |
parent | bfc5c764df145f68835543119865eabe462e19c2 (diff) |
jtag: hla: tcl: fix inconsistent expected_id handling
Copy from 20fcd0729e7187e8fe6a38ce53b0a1b95ea647fb.
Should fix
http://build.openocd.org/job/openocd-clang/doclinks/1/report-1e9b08.html
Change-Id: I1a83387b4d745134acc38eeba08aa869d9895573
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/4333
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src/jtag')
-rw-r--r-- | src/jtag/hla/hla_tcl.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/jtag/hla/hla_tcl.c b/src/jtag/hla/hla_tcl.c index 9378427b..73f78fc8 100644 --- a/src/jtag/hla/hla_tcl.c +++ b/src/jtag/hla/hla_tcl.c @@ -39,20 +39,15 @@ static int jim_newtap_expected_id(Jim_Nvp *n, Jim_GetOptInfo *goi, return e; } - unsigned expected_len = sizeof(uint32_t) * pTap->expected_ids_cnt; - uint32_t *new_expected_ids = malloc(expected_len + sizeof(uint32_t)); - if (new_expected_ids == NULL) { + uint32_t *p = realloc(pTap->expected_ids, + (pTap->expected_ids_cnt + 1) * sizeof(uint32_t)); + if (!p) { Jim_SetResultFormatted(goi->interp, "no memory"); return JIM_ERR; } - memcpy(new_expected_ids, pTap->expected_ids, expected_len); - - new_expected_ids[pTap->expected_ids_cnt] = w; - - free(pTap->expected_ids); - pTap->expected_ids = new_expected_ids; - pTap->expected_ids_cnt++; + pTap->expected_ids = p; + pTap->expected_ids[pTap->expected_ids_cnt++] = w; return JIM_OK; } |