From 842addf0ebbcd946bf03256059838b06ef22ae77 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Fri, 15 Feb 2013 08:22:12 +0000 Subject: [PATCH] Memory leaks (for CVS HEAD). --- org.glite.lb.common/src/context.c | 12 +++++++----- org.glite.lb.server/src/stored_master.c | 3 ++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/org.glite.lb.common/src/context.c b/org.glite.lb.common/src/context.c index 6968a89..f42c6ef 100644 --- a/org.glite.lb.common/src/context.c +++ b/org.glite.lb.common/src/context.c @@ -182,12 +182,14 @@ void edg_wll_FreeContext(edg_wll_Context ctx) } if (ctx->authz_policy.actions_num) { for (i = 0; i < ctx->authz_policy.actions_num; i++) { - int j; - struct _edg_wll_authz_attr *a; + int j, k; + struct _edg_wll_authz_rule *r; for (j = 0; j < ctx->authz_policy.actions[i].rules_num; j++) { - a = ctx->authz_policy.actions[i].rules[j].attrs; - if (a && a->value) - free(a->value); + r = &ctx->authz_policy.actions[i].rules[j]; + for (k = 0; r->attrs && k < r->attrs_num; k++) { + free(r->attrs[k].value); + } + free(r->attrs); } free(ctx->authz_policy.actions[i].rules); } diff --git a/org.glite.lb.server/src/stored_master.c b/org.glite.lb.server/src/stored_master.c index 6f63dd0..9543dfe 100644 --- a/org.glite.lb.server/src/stored_master.c +++ b/org.glite.lb.server/src/stored_master.c @@ -127,7 +127,7 @@ int edg_wll_StoreProto(edg_wll_Context ctx) handle_il_message(ctx, buf); edg_wll_ServerStatisticsIncrement(ctx, SERVER_STATS_LBPROTO); } - free(buf); + free(buf); buf = NULL; if ( (len = create_reply(ctx, &buf)) > 0 ) { if (ctx->isProxy) { @@ -145,6 +145,7 @@ int edg_wll_StoreProto(edg_wll_Context ctx) } } } else ret = edg_wll_UpdateError(ctx, E2BIG, "StoreProto(): error creating reply"); + free(buf); buf = NULL; return edg_wll_Error(ctx,NULL,NULL); } -- 1.8.2.3