From 943ca064ec6ab2f009f12b3d5f1e90a5402f04d6 Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Sat, 31 Mar 2012 00:15:02 +0200 Subject: libglusterfs/run: clean up properly also if program could not be spawned Change-Id: Ie81a6e1a99c1cb002653c0175bb3c5fcff9c8a4a BUG: 808427 Reported-by: Krishnan Parthasarathi Signed-off-by: Csaba Henk Reviewed-on: http://review.gluster.com/3055 Tested-by: Gluster Build System Reviewed-by: Krishnan Parthasarathi --- libglusterfs/src/run.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libglusterfs/src/run.c b/libglusterfs/src/run.c index 44ef2f0d739..0dbf33b9d96 100644 --- a/libglusterfs/src/run.c +++ b/libglusterfs/src/run.c @@ -364,9 +364,11 @@ runner_end (runner_t *runner) ret = runner_end_reuse (runner); - for (p = runner->argv; *p; p++) - GF_FREE (*p); - GF_FREE (runner->argv); + if (runner->argv) { + for (p = runner->argv; *p; p++) + GF_FREE (*p); + GF_FREE (runner->argv); + } for (i = 0; i < 3; i++) close (runner->chfd[i]); @@ -379,10 +381,8 @@ runner_run_generic (runner_t *runner, int (*rfin)(runner_t *runner)) int ret = 0; ret = runner_start (runner); - if (ret != 0) - return -1; - return rfin (runner) ? -1 : 0; + return -(rfin (runner) || ret); } int -- cgit