From 5bc81a00b656522351c5970a4e7546e9b68870a1 Mon Sep 17 00:00:00 2001 From: Pierre Muller Date: Wed, 5 Dec 2012 23:23:22 +0000 Subject: Avoid memory leaks on struct cmd_list_element.doc field. * cli/cli-decode.c (add_alias_cmd): Make a copy of doc field if flags contains DOC_ALLOCATED. (add_setshow_cmd_full): Add DOC_ALLOCATED to set and show flags. (delete_cmd): Handle DOC_ALLOCATED flag. * cli/cli-decode.h (DOC_ALLOCATED): New macro for use in flags filed of struct cmd_list_element. (struct cmd_list_element): Document new flag item. --- gdb/cli/cli-decode.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gdb/cli/cli-decode.h') diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h index edae6e8..3d4d1b6 100644 --- a/gdb/cli/cli-decode.h +++ b/gdb/cli/cli-decode.h @@ -51,6 +51,7 @@ cmd_types; #define CMD_DEPRECATED 0x1 #define DEPRECATED_WARN_USER 0x2 #define MALLOCED_REPLACEMENT 0x4 +#define DOC_ALLOCATED 0x8 struct cmd_list_element { @@ -112,7 +113,9 @@ struct cmd_list_element memory for replacement is malloc'ed. When a command is undeprecated or re-deprecated at runtime we don't want to risk calling free on statically allocated memory, so we check this - flag. */ + flag. + + bit 3: DOC_ALLOCATED, set if the doc field should be xfree'd. */ int flags; -- cgit v1.1