jtag/tcl: fix memory leak in error return
authorTomas Vanek <vanekt@fbl.cz>
Thu, 29 Oct 2020 19:41:54 +0000 (20:41 +0100)
committerAntonio Borneo <borneo.antonio@gmail.com>
Wed, 4 Nov 2020 17:35:25 +0000 (17:35 +0000)
Clang static analyzer reported:
Warning: line 196, column 3
Potential leak of memory pointed to by 'fields'

Free allocated memory pointed by 'fields' and fields[i].in_value

Change-Id: I0b3935d9a235544afc03e39a4648319047e65815
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: http://openocd.zylin.com/5906
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Tested-by: jenkins
Reviewed-by: Jonathan McDowell <noodles-openocd@earth.li>
src/jtag/tcl.c

index 153a98e1b64ebc53bf9fc02051cf08d9c7d4d740..2fa162e56ff84658019468c4ce50c6f6be6d4c9a 100644 (file)
@@ -194,6 +194,11 @@ static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args
        retval = jtag_execute_queue();
        if (retval != ERROR_OK) {
                Jim_SetResultString(interp, "drscan: jtag execute failed", -1);
+
+               for (i = 0; i < field_count; i++)
+                       free(fields[i].in_value);
+               free(fields);
+
                return JIM_ERR;
        }