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:
parent
a7e8769de3
commit
7f9b25bffa
13
mount.c
13
mount.c
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user