The branch, v3-5-test has been updated
       via  36dc8a0 Fix bug #9104 - winbindd can mis-identify idle clients - 
can cause crashes and NDR parsing errors.
       via  e01df21 Ensure we keep last_access up to date when processing a 
request.
      from  b27caac s3: Fix a crash in reply_lockingX_error

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-5-test


- Log -----------------------------------------------------------------
commit 36dc8a0f40a38d9c03570856cb4c843b74c1c7bd
Author: Herb Lewis <[email protected]>
Date:   Mon Aug 20 16:03:28 2012 -0700

    Fix bug #9104 - winbindd can mis-identify idle clients - can cause crashes 
and NDR parsing errors.
    
    A connection is idle when both struct winbindd_cli_state->request AND
    struct winbindd_cli_state->response are NULL. Otherwise we can flag
    as idle a connection in the state of having sent the request to
    the winbindd child (request != NULL) but not yet received a reply
    (response == NULL).

commit e01df21a5dbe8f3d401d58de6cffa4d4ba340a24
Author: Jeremy Allison <[email protected]>
Date:   Mon Aug 20 15:21:26 2012 -0700

    Ensure we keep last_access up to date when processing a request.

-----------------------------------------------------------------------

Summary of changes:
 source3/winbindd/winbindd.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c
index ca5a53b..4442c73 100644
--- a/source3/winbindd/winbindd.c
+++ b/source3/winbindd/winbindd.c
@@ -566,6 +566,7 @@ static void process_request(struct winbindd_cli_state 
*state)
 
        state->cmd_name = "unknown request";
        state->recv_fn = NULL;
+       state->last_access = time(NULL);
 
        /* Process command */
 
@@ -871,7 +872,8 @@ static bool remove_idle_client(void)
        int nidle = 0;
 
        for (state = winbindd_client_list(); state; state = state->next) {
-               if (state->response == NULL &&
+               if (state->request == NULL &&
+                   state->response == NULL &&
                    !state->pwent_state && !state->grent_state) {
                        nidle++;
                        if (!last_access || state->last_access < last_access) {


-- 
Samba Shared Repository

Reply via email to