]> git.sur5r.net Git - openocd/commitdiff
jtag: hla: tcl: fix inconsistent expected_id handling
authorPaul Fertser <fercerpav@gmail.com>
Sat, 13 Jan 2018 14:24:37 +0000 (17:24 +0300)
committerTomas Vanek <vanekt@fbl.cz>
Mon, 12 Mar 2018 14:10:18 +0000 (14:10 +0000)
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>
src/jtag/hla/hla_tcl.c

index 9378427b05a3d14909eefa84c3d9b0e0c86a1a2f..73f78fc8a563563c04d9dab5e9f8d8db69832380 100644 (file)
@@ -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;
 }