From cb603a5624eef9d2ad9288fb16d48d8286479d8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Tue, 24 Oct 2006 22:35:53 +0000 Subject: [PATCH] Avoid leaking memory. rename ->handle to ->handles. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@18887 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/gssmask/gssmask.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/appl/gssmask/gssmask.c b/appl/gssmask/gssmask.c index 107ef39bf..4803d2fb3 100644 --- a/appl/gssmask/gssmask.c +++ b/appl/gssmask/gssmask.c @@ -52,7 +52,7 @@ struct client { krb5_storage *logging; char *moniker; int32_t nHandle; - struct handle *handle; + struct handle *handles; struct sockaddr_storage sa; socklen_t salen; char servername[MAXHOSTNAMELEN]; @@ -110,8 +110,8 @@ add_handle(struct client *c, enum handle_type type, void *data) h->idx = ++c->nHandle; h->type = type; h->ptr = data; - h->next = c->handle; - c->handle = h; + h->next = c->handles; + c->handles = h; return h->idx; } @@ -138,6 +138,7 @@ del_handle(struct handle **h, int32_t idx) gss_release_cred(&min_stat, &c); break; } } + free(p); return; } h = &((*h)->next); @@ -311,10 +312,10 @@ HandleOP(InitContext) "targetname: <%.*s>", (int)target_name.length, (char *)target_name.data); - ctx = find_handle(c->handle, hContext, handle_context); + ctx = find_handle(c->handles, hContext, handle_context); if (ctx == NULL) hContext = 0; - creds = find_handle(c->handle, hCred, handle_cred); + creds = find_handle(c->handles, hCred, handle_cred); if (creds == NULL) abort(); @@ -367,7 +368,7 @@ HandleOP(InitContext) NULL); if (GSS_ERROR(maj_stat)) { if (hContext != 0) - del_handle(&c->handle, hContext); + del_handle(&c->handles, hContext); new_context_id = 0; logmessage(c, __FILE__, __LINE__, 0, "gss_init_sec_context returns code: %d/%d", @@ -421,7 +422,7 @@ HandleOP(AcceptContext) ret32(c, flags); retdata(c, in_token); - ctx = find_handle(c->handle, hContext, handle_context); + ctx = find_handle(c->handles, hContext, handle_context); if (ctx == NULL) hContext = 0; @@ -447,7 +448,7 @@ HandleOP(AcceptContext) &deleg_cred); if (GSS_ERROR(maj_stat)) { if (hContext != 0) - del_handle(&c->handle, hContext); + del_handle(&c->handles, hContext); logmessage(c, __FILE__, __LINE__, 0, "gss_accept_sec_context returns code: %d/%d", maj_stat, min_stat); @@ -495,7 +496,7 @@ HandleOP(ToastResource) ret32(c, handle); logmessage(c, __FILE__, __LINE__, 0, "toasting %d", handle); - del_handle(&c->handle, handle); + del_handle(&c->handles, handle); put32(c, GSMERR_OK); return 0; @@ -562,7 +563,7 @@ HandleOP(Sign) ret32(c, seqno); retdata(c, token); - ctx = find_handle(c->handle, hContext, handle_context); + ctx = find_handle(c->handles, hContext, handle_context); if (ctx == NULL) errx(1, "sign: reference to unknown context"); @@ -599,7 +600,7 @@ HandleOP(Verify) ret32(c, hContext); - ctx = find_handle(c->handle, hContext, handle_context); + ctx = find_handle(c->handles, hContext, handle_context); if (ctx == NULL) errx(1, "verify: reference to unknown context"); @@ -733,7 +734,7 @@ HandleOP(Wrap) ret32(c, seqno); retdata(c, token); - ctx = find_handle(c->handle, hContext, handle_context); + ctx = find_handle(c->handles, hContext, handle_context); if (ctx == NULL) errx(1, "wrap: reference to unknown context"); @@ -775,7 +776,7 @@ HandleOP(Unwrap) ret32(c, seqno); retdata(c, token); - ctx = find_handle(c->handle, hContext, handle_context); + ctx = find_handle(c->handles, hContext, handle_context); if (ctx == NULL) errx(1, "unwrap: reference to unknown context");