Memory leaks (for CVS HEAD).
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Fri, 15 Feb 2013 08:22:12 +0000 (08:22 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Fri, 15 Feb 2013 22:00:04 +0000 (23:00 +0100)
org.glite.lb.common/src/context.c
org.glite.lb.server/src/stored_master.c

index 6968a89..f42c6ef 100644 (file)
@@ -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);
                }
index 6f63dd0..9543dfe 100644 (file)
@@ -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);
 }