Commit c088b691 authored by Zhang Shengju's avatar Zhang Shengju Committed by Kevin Wolf
Browse files

block/vpc: write checksum back to footer after check



After validation check, the 'checksum' is not written back
to footer, which leave it with zero.

This results in errors while loadding it under Microsoft's
Hyper-V environment, and also errors from utilities like
Citrix's vhd-util.

Signed-off-by: default avatarZhang Shengju <sean_zhang@trendmicro.com.cn>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 95ebda85
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -189,6 +189,9 @@ static int vpc_open(BlockDriverState *bs, int flags)
        fprintf(stderr, "block-vpc: The header checksum of '%s' is "
            "incorrect.\n", bs->filename);

    /* Write 'checksum' back to footer, or else will leave it with zero. */
    footer->checksum = be32_to_cpu(checksum);

    // The visible size of a image in Virtual PC depends on the geometry
    // rather than on the size stored in the footer (the size in the footer
    // is too large usually)