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.
This commit is contained in:
Pierre Muller
2012-12-05 23:23:22 +00:00
parent ad288036a7
commit 5bc81a00b6
3 changed files with 28 additions and 1 deletions

View File

@@ -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;