target: remove memory leaks
[fw/openocd] / src / target / arm_adi_v5.c
index 1f4ade09715f7104222129dd100c791ea618e7c5..4bfa7f790d5b235e565c27501823012a50fafad9 100644 (file)
@@ -409,8 +409,10 @@ int mem_ap_read(struct adiv5_dap *dap, uint8_t *buffer, uint32_t size, uint32_t
        }
 
        retval = dap_setup_accessport_tar(dap, address);
-       if (retval != ERROR_OK)
+       if (retval != ERROR_OK) {
+               free(read_buf);
                return retval;
+       }
 
        /* Queue up all reads. Each read will store the entire DRW word in the read buffer. How many
         * useful bytes it contains, and their location in the word, depends on the type of transfer
@@ -1366,6 +1368,14 @@ static int dap_rom_display(struct command_context *cmd_ctx,
                                type = "Cortex-R4 ETM";
                                full = "(Embedded Trace)";
                                break;
+                       case 0x950:
+                               type = "CoreSight Component";
+                               full = "(unidentified Cortex-A9 component)";
+                               break;
+                       case 0x9a0:
+                               type = "CoreSight PMU";
+                               full = "(Performance Monitoring Unit)";
+                               break;
                        case 0x9a1:
                                type = "Cortex-M4 TPUI";
                                full = "(Trace Port Interface Unit)";