:>:-                                       auth_destroy(clp->cl_auth);
:>:-                                       clnt_destroy(clp);
:>:                                        retrycnt = 0;
:>:                                }
:>:+                               auth_destroy(clp->cl_auth);
:>:+                               clnt_destroy(clp);
:>:+                               so = RPC_ANYSOCK;
:> 
:>     Good catch!  This patch looks good to me, I am going to go ahead
:>     and commit it.
:> 
:>     Resetting 'so' is good code form, but I went through the rpc code
:>     and it wasn't an operational bug ... the rpc code can overwrite so
:>     in the case of a failure but only with '-1', which is RPC_ANYSOCK
:>     anyway.  Still, it's good not to make assumptions.
:> 
:>                                       -Matt
:
:Without the "so = RPC_ANYSOCK" and no other changes, the "weak credential"
:failure turned into a "bad file descriptor" failure, so I think the non -1
:socket fd is being reused. Perhaps the initialization of "so" should be moved
:into the retry loop.
:
:Jonathan Hanna <[EMAIL PROTECTED]>

    Hmm.  Yes, there does appear to be an issue there.  The
    'goto tryagain' on line 777 is leaving the clp and al_auth allocated
    as well, so there is a memory leak there too.

    I'll do a whole cleanup on the code and post a more involved patch.

                                        -Matt
                                        Matthew Dillon 
                                        <[EMAIL PROTECTED]>


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to