summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2015-11-16 08:11:21 -0500
committerSteve Dickson <steved@redhat.com>2015-11-16 08:46:16 -0500
commitc301db9dfd3f58ee1a286c5d421eb82c0daa5187 (patch)
tree406646a121b8274be850d6db92352d338988f189 /src
parentd50a71515feda22c251ee3be4fc56de685866105 (diff)
downloadti-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.c4
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;