mirror of
https://github.com/git/git.git
synced 2026-03-06 15:29:05 +01:00
fsmonitor: fix hashmap memory leak in fsmonitor_run_daemon
The `state.cookies` hashmap is initialized during daemon startup but never freed during cleanup in the `done:` label of fsmonitor_run_daemon(). The cookie entries also have names allocated via strbuf_detach() that must be freed individually. Iterate the hashmap to free each cookie name, then call hashmap_clear_and_free() to release the entries and table. Signed-off-by: Paul Tarjan <github@paulisageek.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
6b837b4c3c
commit
d55ffd0ee4
@@ -1404,6 +1404,15 @@ static int fsmonitor_run_daemon(void)
|
||||
done:
|
||||
pthread_cond_destroy(&state.cookies_cond);
|
||||
pthread_mutex_destroy(&state.main_lock);
|
||||
{
|
||||
struct hashmap_iter iter;
|
||||
struct fsmonitor_cookie_item *cookie;
|
||||
|
||||
hashmap_for_each_entry(&state.cookies, &iter, cookie, entry)
|
||||
free(cookie->name);
|
||||
hashmap_clear_and_free(&state.cookies,
|
||||
struct fsmonitor_cookie_item, entry);
|
||||
}
|
||||
fsm_listen__dtor(&state);
|
||||
fsm_health__dtor(&state);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user