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