summary refs log tree commit diff stats
path: root/include/qapi/string-input-visitor.h
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2015-01-06 18:48:11 +0100
committerKevin Wolf <kwolf@redhat.com>2015-02-06 17:24:21 +0100
commitc6d34865fa02463cf34634f45369ebcc725b101b (patch)
tree685cb55ed16e4512a4739dd21c1a61dae05321a7 /include/qapi/string-input-visitor.h
parent8daf425794ed624083de98caab04b9fedb873420 (diff)
downloadfocaccia-qemu-c6d34865fa02463cf34634f45369ebcc725b101b.tar.gz
focaccia-qemu-c6d34865fa02463cf34634f45369ebcc725b101b.zip
block/dmg: fix sector data offset calculation
This patch addresses two issues:

 - The data fork offset was not taken into account, resulting in failure
   to read an InstallESD.dmg file (5164763151 bytes) which had a
   non-zero DataForkOffset field.
 - The offset of the previous block ("partition") was unconditionally
   added to the current block because older files would start the input
   offset of a new block at zero. Newer files (including vlc-2.1.5.dmg,
   tuxpaint-0.9.15-macosx.dmg and OS X Yosemite [MAS].dmg) failed in
   reads because these files have chunk offsets, relative to the begin
   of a data fork.

Now the data offset of the mish is taken into account. While we could
check that the data_offset is within the data fork, let's not do that
here as it would only result in parse failures on invalid files (rather
than gracefully handling such bad files). dmg_read will error out if
the offset is incorrect.

Signed-off-by: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: John Snow <jsnow@redhat.com>
Message-id: 1420566495-13284-9-git-send-email-peter@lekensteyn.nl
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'include/qapi/string-input-visitor.h')
0 files changed, 0 insertions, 0 deletions