From 6c6b42664a460da505a55c9062708fe314a9fcd8 Mon Sep 17 00:00:00 2001 From: Paul Fertser Date: Sat, 13 Jan 2018 17:24:37 +0300 Subject: [PATCH] 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 Reviewed-on: http://openocd.zylin.com/4333 Tested-by: jenkins Reviewed-by: Tomas Vanek --- src/jtag/hla/hla_tcl.c | 15 +++++---------- 1 file 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; } -- 2.39.5