jtag: hla: tcl: fix inconsistent expected_id handling

Copy from 20fcd0729e.
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>
This commit is contained in:
Paul Fertser 2018-01-13 17:24:37 +03:00 committed by Tomas Vanek
parent bfc5c764df
commit 6c6b42664a

View File

@ -39,20 +39,15 @@ static int jim_newtap_expected_id(Jim_Nvp *n, Jim_GetOptInfo *goi,
return e; return e;
} }
unsigned expected_len = sizeof(uint32_t) * pTap->expected_ids_cnt; uint32_t *p = realloc(pTap->expected_ids,
uint32_t *new_expected_ids = malloc(expected_len + sizeof(uint32_t)); (pTap->expected_ids_cnt + 1) * sizeof(uint32_t));
if (new_expected_ids == NULL) { if (!p) {
Jim_SetResultFormatted(goi->interp, "no memory"); Jim_SetResultFormatted(goi->interp, "no memory");
return JIM_ERR; return JIM_ERR;
} }
memcpy(new_expected_ids, pTap->expected_ids, expected_len); pTap->expected_ids = p;
pTap->expected_ids[pTap->expected_ids_cnt++] = w;
new_expected_ids[pTap->expected_ids_cnt] = w;
free(pTap->expected_ids);
pTap->expected_ids = new_expected_ids;
pTap->expected_ids_cnt++;
return JIM_OK; return JIM_OK;
} }