[lxc-devel] [PATCH] lxc_mount_auto_mounts: fix weirdness

Serge Hallyn serge.hallyn at ubuntu.com
Sat Oct 3 21:52:16 UTC 2015


The default_mounts[i].destination is never NULL except in the last
'stop here' entry.  Coverity doesn't know about that and so is spewing
a warning.  In any case, let's add a more stringent check in case someone
accidentally adds a NULL there later.

Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
---
 src/lxc/conf.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/lxc/conf.c b/src/lxc/conf.c
index bb4c19f..80ff647 100644
--- a/src/lxc/conf.c
+++ b/src/lxc/conf.c
@@ -803,16 +803,18 @@ static int lxc_mount_auto_mounts(struct lxc_conf *conf, int flags, struct lxc_ha
 					return -1;
 				}
 			}
-			if (default_mounts[i].destination) {
-				/* will act like strdup if %r is not present */
-				destination = lxc_string_replace("%r", conf->rootfs.path ? conf->rootfs.mount : "", default_mounts[i].destination);
-				if (!destination) {
-					saved_errno = errno;
-					SYSERROR("memory allocation error");
-					free(source);
-					errno = saved_errno;
-					return -1;
-				}
+			if (!default_mounts[i].destination) {
+				ERROR("BUG: auto mounts destination %d was NULL", i);
+				return -1;
+			}
+			/* will act like strdup if %r is not present */
+			destination = lxc_string_replace("%r", conf->rootfs.path ? conf->rootfs.mount : "", default_mounts[i].destination);
+			if (!destination) {
+				saved_errno = errno;
+				SYSERROR("memory allocation error");
+				free(source);
+				errno = saved_errno;
+				return -1;
 			}
 			mflags = add_required_remount_flags(source, destination,
 					default_mounts[i].flags);
-- 
2.5.0



More information about the lxc-devel mailing list