winbind: cleanup winbindd_cli_state->pwent_state if winbindd_getpwent_recv() returns...
authorStefan Metzmacher <metze@samba.org>
Fri, 16 Feb 2018 15:13:16 +0000 (16:13 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 23 Feb 2018 03:09:18 +0000 (04:09 +0100)
A client may skip the explicit endpwent() if getgrent() fails.

This allows client_is_idle() return true in more cases.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13293

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
source3/winbindd/winbindd_getpwent.c

index d33f5f9864f63b1859deabb6d6a27fe839286cba..9e5190a3c60d7e45b6a49318ec37fa727abcc8c7 100644 (file)
@@ -124,6 +124,7 @@ NTSTATUS winbindd_getpwent_recv(struct tevent_req *req,
        NTSTATUS status;
 
        if (tevent_req_is_nterror(req, &status)) {
+               TALLOC_FREE(state->cli->pwent_state);
                DEBUG(5, ("getpwent failed: %s\n", nt_errstr(status)));
                return status;
        }