[CRIU] [PATCH v2 6/6] mount: use construct_string() in resolve_external_mounts()

Stanislav Kinsburskiy skinsbursky at virtuozzo.com
Thu Dec 17 04:05:35 PST 2015


Signed-off-by: Stanislav Kinsburskiy <skinsbursky at virtuozzo.com>
---
 mount.c |   13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/mount.c b/mount.c
index e1e1ca2..e2dd5e8 100644
--- a/mount.c
+++ b/mount.c
@@ -833,7 +833,7 @@ static int resolve_external_mounts(struct mount_info *info)
 	}
 
 	for (m = info; m; m = m->next) {
-		int ret, size;
+		int ret;
 		char *p, *cut_root;
 		struct ext_mount *em;
 		struct mount_info *match;
@@ -878,19 +878,10 @@ static int resolve_external_mounts(struct mount_info *info)
 
 		cut_root = cut_root_for_bind(m->root, match->root);
 
-		/* +2 for the NULL byte and the extra / in the sprintf below,
-		 * which we cut off in cut_root_for_bind(). */
-		size = strlen(match->mountpoint + 1) + strlen(cut_root) + 2;
-		p = xmalloc(sizeof(char) * size);
+		p = xsprintf("%s/%s", match->mountpoint + 1, cut_root);
 		if (!p)
 			return -1;
 
-		ret = snprintf(p, size, "%s/%s", match->mountpoint + 1, cut_root);
-		if (ret < 0 || ret >= size) {
-			free(p);
-			return -1;
-		}
-
 		em = xmalloc(sizeof(struct ext_mount));
 		if (!em) {
 			free(p);



More information about the CRIU mailing list