By making use of GNU C's cleanup attribute handled by the
VIR_AUTOFREE macro for declaring scalar variables, majority
of the VIR_FREE calls can be dropped, which in turn leads to
getting rid of most of our cleanup sections.
Signed-off-by: Sukrit Bhatnagar <skrtbhtngr(a)gmail.com>
Reviewed-by: Erik Skultety <eskultet(a)redhat.com>
---
src/util/virhook.c | 22 +++++++++-------------
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/src/util/virhook.c b/src/util/virhook.c
index facd74a..4673655 100644
--- a/src/util/virhook.c
+++ b/src/util/virhook.c
@@ -122,8 +122,7 @@ static int virHooksFound = -1;
static int
virHookCheck(int no, const char *driver)
{
- char *path;
- int ret;
+ VIR_AUTOFREE(char *) path = NULL;
if (driver == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -139,18 +138,17 @@ virHookCheck(int no, const char *driver)
}
if (!virFileExists(path)) {
- ret = 0;
VIR_DEBUG("No hook script %s", path);
- } else if (!virFileIsExecutable(path)) {
- ret = 0;
+ return 0;
+ }
+
+ if (!virFileIsExecutable(path)) {
VIR_WARN("Non-executable hook script %s", path);
- } else {
- ret = 1;
- VIR_DEBUG("Found hook script %s", path);
+ return 0;
}
- VIR_FREE(path);
- return ret;
+ VIR_DEBUG("Found hook script %s", path);
+ return 1;
}
/*
@@ -233,7 +231,7 @@ virHookCall(int driver,
char **output)
{
int ret;
- char *path;
+ VIR_AUTOFREE(char *) path = NULL;
virCommandPtr cmd;
const char *drvstr;
const char *opstr;
@@ -318,7 +316,5 @@ virHookCall(int driver,
virCommandFree(cmd);
- VIR_FREE(path);
-
return ret;
}
--
1.8.3.1