Commit 5fb09cd5 authored by Kevin Wolf's avatar Kevin Wolf
Browse files

vpc: Handle failure for potentially large allocations



Some code in the block layer makes potentially huge allocations. Failure
is not completely unexpected there, so avoid aborting qemu and handle
out-of-memory situations gracefully.

This patch addresses the allocations in the vpc block driver.

Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: default avatarBenoit Canet <benoit@irqsave.net>
parent d6e59931
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -269,7 +269,11 @@ static int vpc_open(BlockDriverState *bs, QDict *options, int flags,
            goto fail;
        }

        s->pagetable = qemu_blockalign(bs, s->max_table_entries * 4);
        s->pagetable = qemu_try_blockalign(bs->file, s->max_table_entries * 4);
        if (s->pagetable == NULL) {
            ret = -ENOMEM;
            goto fail;
        }

        s->bat_offset = be64_to_cpu(dyndisk_header->table_offset);