[lxc-devel] [PATCH 1/2] Simplify function

Christian Brauner christianvanbrauner at gmail.com
Sun Oct 25 21:59:45 UTC 2015


Instead of duplicating the cleanup-code, once for success and once for failure,
simply keep a variable fret which is -1 in the beginning and gets set to 0 on
success or stays -1 on failure.

Signed-off-by: Christian Brauner <christianvanbrauner at gmail.com>
---
 src/lxc/conf.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/lxc/conf.c b/src/lxc/conf.c
index 932d1a3..142444e 100644
--- a/src/lxc/conf.c
+++ b/src/lxc/conf.c
@@ -1860,6 +1860,7 @@ static int mount_entry_create_overlay_dirs(const struct mntent *mntent,
 	char *upperdir = NULL;
 	char *workdir = NULL;
 	char **opts = NULL;
+	int fret = -1;
 	int ret = 0;
 	size_t arrlen = 0;
 	size_t dirlen = 0;
@@ -1907,14 +1908,12 @@ static int mount_entry_create_overlay_dirs(const struct mntent *mntent,
 				WARN("Failed to create workdir");
 			}
 
-	free(rootfsdir);
-	lxc_free_array((void **)opts, free);
-	return 0;
+	fret = 0;
 
 err:
 	free(rootfsdir);
 	lxc_free_array((void **)opts, free);
-	return -1;
+	return fret;
 }
 
 static int mount_entry_create_aufs_dirs(const struct mntent *mntent,
@@ -1928,6 +1927,7 @@ static int mount_entry_create_aufs_dirs(const struct mntent *mntent,
 	char *tmp = NULL;
 	char *upperdir = NULL;
 	char **opts = NULL;
+	int fret = -1;
 	int ret = 0;
 	size_t arrlen = 0;
 	size_t i;
@@ -1969,14 +1969,12 @@ static int mount_entry_create_aufs_dirs(const struct mntent *mntent,
 			WARN("Failed to create upperdir");
 		}
 
-	free(rootfsdir);
-	lxc_free_array((void **)opts, free);
-	return 0;
+	fret = 0;
 
 err:
 	free(rootfsdir);
 	lxc_free_array((void **)opts, free);
-	return -1;
+	return fret;
 }
 
 
-- 
2.6.2



More information about the lxc-devel mailing list