From b0bb1a2c979078efa3ab024e14119df6087c4320 Mon Sep 17 00:00:00 2001 From: Amar Tumballi Date: Tue, 27 Mar 2012 18:22:15 +0530 Subject: cli: do the proper STACK_DESTORY of created frames * fixes memory leaks * fixes some random local mem-pool empty messages Change-Id: Ic79f279f2acfe4722fa54d52397d0267b3918928 Signed-off-by: Amar Tumballi BUG: 803638 Reviewed-on: http://review.gluster.com/3018 Tested-by: Gluster Build System Reviewed-by: Kaushal M Reviewed-by: Jeff Darcy Reviewed-by: Vijay Bellur --- cli/src/cli-cmd-volume.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) (limited to 'cli/src/cli-cmd-volume.c') diff --git a/cli/src/cli-cmd-volume.c b/cli/src/cli-cmd-volume.c index 7ba4e838..6b65d5f8 100644 --- a/cli/src/cli-cmd-volume.c +++ b/cli/src/cli-cmd-volume.c @@ -106,7 +106,7 @@ out: } frame->local = NULL; if (frame) - FRAME_DESTROY (frame); + STACK_DESTROY (frame->root); return ret; @@ -175,6 +175,9 @@ out: if (dict) dict_unref (dict); + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -401,6 +404,9 @@ out: cli_out ("Volume create failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -452,6 +458,9 @@ out: cli_out ("Volume delete failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -529,6 +538,9 @@ out: cli_out ("Volume start failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -648,6 +660,10 @@ out: } if (dict) dict_unref (dict); + + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -704,6 +720,9 @@ out: cli_out ("Volume rename on '%s' failed", (char *)words[2]); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -799,6 +818,9 @@ out: cli_out ("Volume rebalance failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -842,6 +864,9 @@ out: cli_out ("Volume reset failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -886,6 +911,9 @@ out: cli_out ("Volume profile failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -930,6 +958,9 @@ out: cli_out ("Volume set failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -992,6 +1023,9 @@ out: cli_out ("Volume add-brick failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -1044,6 +1078,9 @@ out: if (ret && parse_err == 0) cli_out ("Quota command failed"); + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -1102,6 +1139,10 @@ out: if (options) dict_unref (options); + + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -1151,6 +1192,9 @@ out: cli_out ("Volume replace-brick failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -1204,6 +1248,9 @@ out: cli_out ("Volume top failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -1250,6 +1297,9 @@ out: cli_out ("Volume log rotate failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -1352,6 +1402,9 @@ out: if (ret && parse_err == 0) cli_out (GEOREP" command failed"); + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -1397,6 +1450,10 @@ cli_cmd_volume_status_cbk (struct cli_state *state, out: if (dict) dict_unref (dict); + + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -1624,6 +1681,9 @@ out: if (options) dict_unref (options); + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -1676,6 +1736,9 @@ out: cli_out ("Volume statedump failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -1704,6 +1767,9 @@ out: cli_out ("Volume list failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } @@ -1758,6 +1824,9 @@ out: cli_out ("Volume clear-locks failed"); } + if (frame) + STACK_DESTROY (frame->root); + return ret; } -- cgit