Skip to content

Commit

Permalink
menuconfig: Fix memory leak introduced by jump keys feature
Browse files Browse the repository at this point in the history
Fixes the memory leak of struct jump_key allocated in get_prompt_str()

Signed-off-by: Benjamin Poirier <bpoirier@suse.de>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: stable@vger.kernel.org
  • Loading branch information
gobenji authored and yann-morin-1998 committed Apr 16, 2013
1 parent a45c7df commit edb749f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
13 changes: 13 additions & 0 deletions scripts/kconfig/list.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,19 @@ struct list_head {
&pos->member != (head); \
pos = list_entry(pos->member.next, typeof(*pos), member))

/**
* list_for_each_entry_safe - iterate over list of given type safe against removal of list entry
* @pos: the type * to use as a loop cursor.
* @n: another type * to use as temporary storage
* @head: the head for your list.
* @member: the name of the list_struct within the struct.
*/
#define list_for_each_entry_safe(pos, n, head, member) \
for (pos = list_entry((head)->next, typeof(*pos), member), \
n = list_entry(pos->member.next, typeof(*pos), member); \
&pos->member != (head); \
pos = n, n = list_entry(n->member.next, typeof(*n), member))

/**
* list_empty - tests whether a list is empty
* @head: the list to test.
Expand Down
3 changes: 3 additions & 0 deletions scripts/kconfig/mconf.c
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,7 @@ static void search_conf(void)
.targets = targets,
.keys = keys,
};
struct jump_key *pos, *tmp;

res = get_relations_str(sym_arr, &head);
dres = show_textbox_ext(_("Search Results"), (char *)
Expand All @@ -402,6 +403,8 @@ static void search_conf(void)
again = true;
}
str_free(&res);
list_for_each_entry_safe(pos, tmp, &head, entries)
free(pos);
} while (again);
free(sym_arr);
str_free(&title);
Expand Down

0 comments on commit edb749f

Please sign in to comment.