From 7143c62c953628ced7c70715f67921ed6f13dfca Mon Sep 17 00:00:00 2001 From: bellard Date: Wed, 25 Aug 2004 20:50:14 +0000 Subject: vmdk 3 fixes git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1052 c046a42c-6fe2-441c-8c8c-71466251a162 --- block-vmdk.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'block-vmdk.c') diff --git a/block-vmdk.c b/block-vmdk.c index 36653fb2f..7193f959a 100644 --- a/block-vmdk.c +++ b/block-vmdk.c @@ -101,8 +101,7 @@ static int vmdk_open(BlockDriverState *bs, const char *filename) return -1; if (read(fd, &magic, sizeof(magic)) != sizeof(magic)) goto fail; - magic = le32_to_cpu(magic); - + magic = be32_to_cpu(magic); if (magic == VMDK3_MAGIC) { VMDK3Header header; if (read(fd, &header, sizeof(header)) != @@ -136,7 +135,9 @@ static int vmdk_open(BlockDriverState *bs, const char *filename) s->l1_table = qemu_malloc(l1_size); if (!s->l1_table) goto fail; - if (read(s->fd, s->l1_table, l1_size) != l1_size) + if (lseek(fd, s->l1_table_offset, SEEK_SET) == -1) + goto fail; + if (read(fd, s->l1_table, l1_size) != l1_size) goto fail; for(i = 0; i < s->l1_size; i++) { le32_to_cpus(&s->l1_table[i]); -- cgit v1.2.3