This is an automated email from Gerrit. Spencer Oliver ([email protected]) just uploaded a new patch set to Gerrit, which you can find at http://openocd.zylin.com/1619
-- gerrit commit 0155bda05e5b5520e89e78ae6c874677668e80f3 Author: Spencer Oliver <[email protected]> Date: Wed Sep 11 16:20:58 2013 +0100 gdb: cleanup gdb target description support Make sure we free any memory used for gdb_save_tdesc. Change-Id: Ia226f6134318c8c6b0ac4fa20fe70a570a08d80d Signed-off-by: Spencer Oliver <[email protected]> diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index d8a4ffb..4713e27 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -1963,7 +1963,7 @@ static int gdb_generate_reg_type_description(struct target *target, /* Get a list of available target registers features. feature_list must * be freed by caller. */ -int get_reg_features_list(struct target *target, char **feature_list[], int *feature_list_size, +static int get_reg_features_list(struct target *target, char **feature_list[], int *feature_list_size, struct reg **reg_list, int reg_list_size) { int tbl_sz = 0; @@ -2148,8 +2148,10 @@ static int gdb_get_target_description_chunk(struct target *target, char **chunk, (*chunk)[1 + (tdesc_length - offset)] = '\0'; /* After gdb-server sends out last chunk, invalidate tdesc. */ - free(tdesc); - tdesc = NULL; + if (tdesc) { + free(tdesc); + tdesc = NULL; + } tdesc_length = 0; } @@ -2930,14 +2932,17 @@ COMMAND_HANDLER(handle_gdb_target_description_command) COMMAND_HANDLER(handle_gdb_save_tdesc_command) { - static char *tdesc; - static uint32_t tdesc_length; + char *tdesc; + uint32_t tdesc_length; struct target *target = get_current_target(CMD_CTX); char *tdesc_filename; - if (tdesc == NULL) { - gdb_generate_target_description(target, &tdesc); - tdesc_length = strlen(tdesc); + gdb_generate_target_description(target, &tdesc); + tdesc_length = strlen(tdesc); + + if (tdesc_length == 0) { + LOG_ERROR("Unable to Generate Target Description"); + return ERROR_FAIL; } struct fileio fileio; @@ -2958,6 +2963,7 @@ COMMAND_HANDLER(handle_gdb_save_tdesc_command) fileio_close(&fileio); free(tdesc_filename); + free(tdesc); if (retval != ERROR_OK) { LOG_WARNING("Error while writing the tdesc file"); -- ------------------------------------------------------------------------------ How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk _______________________________________________ OpenOCD-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openocd-devel
