On 16.12.2016 06:20, QingFeng Hao wrote:
> The problem was triggered by qemu-iotests case 055. It failed when it
> was comparing the compressed vmdk image with original test.img.
>
> The cause is that buf_len in vmdk_write_extent wasn't converted to
> little-endian before it was stored to disk. But later vmdk_read_extent
> read it and converted it from little-endian to cpu endian.
> If the cpu is big-endian like s390, the problem will happen and
> the data length read by vmdk_read_extent will become invalid!
> The fix is to add the conversion in vmdk_write_extent, meanwhile,
> repair the endianness problem of lba field which shall also be converted
> to little-endian before storing to disk.
>
> Cc: qemu-sta...@nongnu.org
> Signed-off-by: QingFeng Hao <ha...@linux.vnet.ibm.com>
> Signed-off-by: Jing Liu <liuj...@linux.vnet.ibm.com>
> Signed-off-by: Kevin Wolf <kw...@redhat.com>
> Reviewed-by: Fam Zheng <f...@redhat.com>
> ---
>  block/vmdk.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Thanks, I've applied the patch to my block tree:

https://github.com/XanClic/qemu/commits/block

Max

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to