btrfs-progs: subvol_uuid_search: return error code on memory allocation failure
On failure of memory allocation for a 'struct subvol_info', we would end up dereferencing a NULL pointer. This commit fixes the issue by returning an error encoded pointer. Signed-off-by: Prasanth K S R <prasanth.ksr@dell.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
a2f7af94ab
commit
ee518036d2
12
send-utils.c
12
send-utils.c
|
@ -474,6 +474,10 @@ struct subvol_info *subvol_uuid_search(struct subvol_uuid_search *s,
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
info = calloc(1, sizeof(*info));
|
info = calloc(1, sizeof(*info));
|
||||||
|
if (!info) {
|
||||||
|
ret = -ENOMEM;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
info->root_id = root_id;
|
info->root_id = root_id;
|
||||||
memcpy(info->uuid, root_item.uuid, BTRFS_UUID_SIZE);
|
memcpy(info->uuid, root_item.uuid, BTRFS_UUID_SIZE);
|
||||||
memcpy(info->received_uuid, root_item.received_uuid, BTRFS_UUID_SIZE);
|
memcpy(info->received_uuid, root_item.received_uuid, BTRFS_UUID_SIZE);
|
||||||
|
@ -495,9 +499,11 @@ struct subvol_info *subvol_uuid_search(struct subvol_uuid_search *s,
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
if (ret && info) {
|
if (ret) {
|
||||||
free(info->path);
|
if (info) {
|
||||||
free(info);
|
free(info->path);
|
||||||
|
free(info);
|
||||||
|
}
|
||||||
return ERR_PTR(ret);
|
return ERR_PTR(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue