summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/rpc/clnt_cots.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/rpc/clnt_cots.c')
-rw-r--r--usr/src/uts/common/rpc/clnt_cots.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/usr/src/uts/common/rpc/clnt_cots.c b/usr/src/uts/common/rpc/clnt_cots.c
index 362abfe01b..ab4a9028a8 100644
--- a/usr/src/uts/common/rpc/clnt_cots.c
+++ b/usr/src/uts/common/rpc/clnt_cots.c
@@ -1400,29 +1400,29 @@ read_again:
cm_entry = NULL;
}
+ (void) xdr_rpc_free_verifier(xdrs,
+ &reply_msg);
+
+ if (p->cku_flags & CKU_ONQUEUE) {
+ call_table_remove(call);
+ p->cku_flags &= ~CKU_ONQUEUE;
+ }
+ RPCLOG(64,
+ "clnt_cots_kcallit: AUTH_ERROR, xid"
+ " 0x%x removed off dispatch list\n",
+ p->cku_xid);
+ if (call->call_reply) {
+ freemsg(call->call_reply);
+ call->call_reply = NULL;
+ }
+
if ((refreshes > 0) &&
AUTH_REFRESH(h->cl_auth, &reply_msg,
p->cku_cred)) {
refreshes--;
- (void) xdr_rpc_free_verifier(xdrs,
- &reply_msg);
freemsg(mp);
mp = NULL;
- if (p->cku_flags & CKU_ONQUEUE) {
- call_table_remove(call);
- p->cku_flags &= ~CKU_ONQUEUE;
- }
-
- RPCLOG(64,
- "clnt_cots_kcallit: AUTH_ERROR, xid"
- " 0x%x removed off dispatch list\n",
- p->cku_xid);
- if (call->call_reply) {
- freemsg(call->call_reply);
- call->call_reply = NULL;
- }
-
COTSRCSTAT_INCR(p->cku_stats,
rcbadcalls);
COTSRCSTAT_INCR(p->cku_stats,
@@ -1455,9 +1455,8 @@ read_again:
if (p->cku_useresvport != 1) {
p->cku_useresvport = 1;
p->cku_xid = 0;
- (void) xdr_rpc_free_verifier
- (xdrs, &reply_msg);
freemsg(mp);
+ mp = NULL;
goto call_again;
}
/* FALLTHRU */
@@ -1477,6 +1476,7 @@ read_again:
RPCLOG(1, "clnt_cots_kcallit : authentication"
" failed with RPC_AUTHERROR of type %d\n",
(int)p->cku_err.re_why);
+ goto cots_done;
}
}
} else {