target/arm_dap: fix memory leak in error path of dap_create()
authorTomas Vanek <vanekt@fbl.cz>
Wed, 10 Nov 2021 11:46:42 +0000 (12:46 +0100)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 20 Nov 2021 14:44:38 +0000 (14:44 +0000)
Change-Id: I91fa5910670161b62a76fc834b6394c5a6c05395
Suggested-by: Antonio Borneo <borneo.antonio@gmail.com>
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: https://review.openocd.org/c/openocd/+/6685
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
src/target/arm_dap.c

index 94edfc09d14116859955ffc3a263b5aad612b71d..18e77b50fe1b851bb7ea814efcc9a26da3d1c923 100644 (file)
@@ -267,8 +267,11 @@ static int dap_create(struct jim_getopt_info *goi)
                dap_commands[0].chain = NULL;
 
        e = register_commands_with_data(cmd_ctx, NULL, dap_commands, dap);
-       if (e != ERROR_OK)
+       if (e != ERROR_OK) {
+               free(dap->name);
+               free(dap);
                return JIM_ERR;
+       }
 
        list_add_tail(&dap->lh, &all_dap);