summaryrefslogtreecommitdiffstats
path: root/libdm/libdm-file.c
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2006-05-10 16:23:41 +0000
committerAlasdair Kergon <agk@redhat.com>2006-05-10 16:23:41 +0000
commit7dc850db3e8bffbb9de5eaa923f08ea8256a045e (patch)
tree6bc96e88e6d6324fe607ccf12686383599e4fcbc /libdm/libdm-file.c
parent72b2cb613a57918dadf9722c59a30ca71d751c8e (diff)
downloadlvm2-7dc850db3e8bffbb9de5eaa923f08ea8256a045e.tar.gz
lvm2-7dc850db3e8bffbb9de5eaa923f08ea8256a045e.tar.xz
lvm2-7dc850db3e8bffbb9de5eaa923f08ea8256a045e.zip
coverity fixes
Diffstat (limited to 'libdm/libdm-file.c')
-rw-r--r--libdm/libdm-file.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/libdm/libdm-file.c b/libdm/libdm-file.c
index dbbca599..54c38b4e 100644
--- a/libdm/libdm-file.c
+++ b/libdm/libdm-file.c
@@ -23,7 +23,7 @@
static int _create_dir_recursive(const char *dir)
{
char *orig, *s;
- int rc;
+ int rc, r = 0;
log_verbose("Creating directory \"%s\"", dir);
/* Create parent directories */
@@ -35,22 +35,24 @@ static int _create_dir_recursive(const char *dir)
if (rc < 0 && errno != EEXIST) {
log_error("%s: mkdir failed: %s", orig,
strerror(errno));
- dm_free(orig);
- return 0;
+ goto out;
}
}
*s++ = '/';
}
- dm_free(orig);
/* Create final directory */
rc = mkdir(dir, 0777);
if (rc < 0 && errno != EEXIST) {
log_error("%s: mkdir failed: %s", orig,
strerror(errno));
- return 0;
+ goto out;
}
- return 1;
+
+ r = 1;
+out:
+ dm_free(orig);
+ return r;
}
int create_dir(const char *dir)