mirror of https://gitee.com/openkylin/qemu.git
dmg: fix reading of uncompressed chunks
When dmg_read_chunk encounters an uncompressed chunk it currently calls read without any previous adjustment of the file postion. This seems very wrong, and the "reference" implementation in dmg2img does a search to the same offset as done in the various compression cases, so do the same here. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
dede4188cc
commit
cd02a24b61
|
@ -239,7 +239,8 @@ static inline int dmg_read_chunk(BDRVDMGState *s,int sector_num)
|
||||||
return -1;
|
return -1;
|
||||||
break; }
|
break; }
|
||||||
case 1: /* copy */
|
case 1: /* copy */
|
||||||
ret = read(s->fd, s->uncompressed_chunk, s->lengths[chunk]);
|
ret = pread(s->fd, s->uncompressed_chunk, s->lengths[chunk],
|
||||||
|
s->offsets[chunk]);
|
||||||
if (ret != s->lengths[chunk])
|
if (ret != s->lengths[chunk])
|
||||||
return -1;
|
return -1;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue