2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-29 13:28:27 +00:00

mount: use xsprintf() in resolve_external_mounts()

Signed-off-by: Stanislav Kinsburskiy <skinsbursky@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
Stanislav Kinsburskiy 2015-12-17 15:29:33 +03:00 committed by Pavel Emelyanov
parent a7e8769de3
commit 7f9b25bffa

13
mount.c
View File

@ -833,7 +833,7 @@ static int resolve_external_mounts(struct mount_info *info)
} }
for (m = info; m; m = m->next) { for (m = info; m; m = m->next) {
int ret, size; int ret;
char *p, *cut_root; char *p, *cut_root;
struct ext_mount *em; struct ext_mount *em;
struct mount_info *match; 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); cut_root = cut_root_for_bind(m->root, match->root);
/* +2 for the NULL byte and the extra / in the sprintf below, p = xsprintf("%s/%s", match->mountpoint + 1, cut_root);
* which we cut off in cut_root_for_bind(). */
size = strlen(match->mountpoint + 1) + strlen(cut_root) + 2;
p = xmalloc(sizeof(char) * size);
if (!p) if (!p)
return -1; 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)); em = xmalloc(sizeof(struct ext_mount));
if (!em) { if (!em) {
free(p); free(p);