diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2015-11-16 08:11:21 -0500 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2015-11-16 08:46:16 -0500 |
commit | c301db9dfd3f58ee1a286c5d421eb82c0daa5187 (patch) | |
tree | 406646a121b8274be850d6db92352d338988f189 /src | |
parent | d50a71515feda22c251ee3be4fc56de685866105 (diff) | |
download | ti-rpc-c301db9dfd3f58ee1a286c5d421eb82c0daa5187.tar.gz |
Fix svcauth_gss_accept_sec_context() memory leakslibtirpc-1-0-2-rc1
After svc_sendreply() is done, release items allocated by the
svcauth_gss_accept_sec_context() call.
These two leaks occur on every GSS RPC request.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/svc_auth_gss.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/svc_auth_gss.c b/src/svc_auth_gss.c index 4e9577d..bece46a 100644 --- a/src/svc_auth_gss.c +++ b/src/svc_auth_gss.c @@ -579,6 +579,7 @@ _svcauth_gss(struct svc_req *rqst, struct rpc_msg *msg, bool_t *no_dispatch) struct svcauth_gss_cache_entry **ce; time_t now; enum auth_stat result = AUTH_OK; + OM_uint32 min_stat; gss_log_debug("in svcauth_gss()"); @@ -711,6 +712,9 @@ _svcauth_gss(struct svc_req *rqst, struct rpc_msg *msg, bool_t *no_dispatch) call_stat = svc_sendreply(rqst->rq_xprt, (xdrproc_t)xdr_rpc_gss_init_res, (caddr_t)&gr); + gss_release_buffer(&min_stat, &gr.gr_token); + free(gr.gr_ctx.value); + if (!call_stat) { result = AUTH_FAILED; break; |