From 7f9b25bffadec1ccfb34ddec72e61fa5737de80c Mon Sep 17 00:00:00 2001 From: Stanislav Kinsburskiy Date: Thu, 17 Dec 2015 15:29:33 +0300 Subject: [PATCH] mount: use xsprintf() in resolve_external_mounts() Signed-off-by: Stanislav Kinsburskiy Signed-off-by: Pavel Emelyanov --- mount.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/mount.c b/mount.c index 7f3b4974f..911ef6b09 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);