mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-04 12:16:41 +00:00
menuconfig: Fix memory leak introduced by jump keys feature
commit edb749f439
upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8957e4463f
commit
29e671b541
@ -50,6 +50,19 @@ struct list_head {
|
|||||||
&pos->member != (head); \
|
&pos->member != (head); \
|
||||||
pos = list_entry(pos->member.next, typeof(*pos), member))
|
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
|
* list_empty - tests whether a list is empty
|
||||||
* @head: the list to test.
|
* @head: the list to test.
|
||||||
|
@ -389,6 +389,7 @@ static void search_conf(void)
|
|||||||
.targets = targets,
|
.targets = targets,
|
||||||
.keys = keys,
|
.keys = keys,
|
||||||
};
|
};
|
||||||
|
struct jump_key *pos, *tmp;
|
||||||
|
|
||||||
res = get_relations_str(sym_arr, &head);
|
res = get_relations_str(sym_arr, &head);
|
||||||
dres = show_textbox_ext(_("Search Results"), (char *)
|
dres = show_textbox_ext(_("Search Results"), (char *)
|
||||||
@ -402,6 +403,8 @@ static void search_conf(void)
|
|||||||
again = true;
|
again = true;
|
||||||
}
|
}
|
||||||
str_free(&res);
|
str_free(&res);
|
||||||
|
list_for_each_entry_safe(pos, tmp, &head, entries)
|
||||||
|
free(pos);
|
||||||
} while (again);
|
} while (again);
|
||||||
free(sym_arr);
|
free(sym_arr);
|
||||||
str_free(&title);
|
str_free(&title);
|
||||||
|
Loading…
Reference in New Issue
Block a user