From e30509f037098feac8345f39524902061712039f Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 26 Jul 2009 20:20:50 +0200 Subject: Fix a valgrind error in winbind When looking for idle clients, we dereferenced state->response. As this is dynamically allocated now, the proper test is whether state->response exists at all. This is the case when an async operation is in process at that moment. --- source3/winbindd/winbindd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source3/winbindd/winbindd.c') diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c index 49faae116a..6863e93415 100644 --- a/source3/winbindd/winbindd.c +++ b/source3/winbindd/winbindd.c @@ -664,6 +664,7 @@ static void winbind_client_response_written(struct tevent_req *req) } TALLOC_FREE(state->mem_ctx); + state->response = NULL; req = wb_req_read_send(state, winbind_event_context(), state->sock, WINBINDD_MAX_EXTRA_DATA); @@ -816,7 +817,7 @@ static bool remove_idle_client(void) int nidle = 0; for (state = winbindd_client_list(); state; state = state->next) { - if (state->response->result != WINBINDD_PENDING && + if (state->response == NULL && !state->getpwent_state && !state->getgrent_state) { nidle++; if (!last_access || state->last_access < last_access) { -- cgit