On Thu, Apr 27, 2017 at 1:36 PM, Ashijeet Acharya <ashijeetacha...@gmail.com> wrote: > Previously posted series patches: > v1: http://lists.nongnu.org/archive/html/qemu-devel/2017-04/msg04641.html > > This series helps to provide chunk size independence for DMG driver to prevent > denial-of-service in cases where untrusted files are being accessed by the > user. > > This task is mentioned on the public block ToDo > Here -> http://wiki.qemu.org/ToDo/Block/DmgChunkSizeIndependence > > Patch 1 introduces a new data structure to aid caching of random access points > within a compressed stream. > > Patch 2 is an extension of patch 1 and introduces a new function to > initialize/update/reset our cached random access point. > > Patch 3 limits the output buffer size to a max of 2MB to avoid QEMU allocate > huge amounts of memory. > > Patch 4 is a simple preparatory patch to aid handling of various types of > chunks. > > Patches 5 & 6 help to handle various types of chunks. > > Patch 7 simply refactors dmg_co_preadv() to read multiple sectors at once. > > Patch 8 finally removes the error messages QEMU used to throw when an image > with > chunk sizes above 64MB were accessed by the user.
John, I have squashed patch 3 and 8 (as in v1) actually and that change is represented in patch 7 (as in v2). The cover letter here is quite misleading, as I forgot to update it and simply did a ctrl-c -- ctrl-v carelessly. Ashijeet > Ashijeet Acharya (7): > dmg: Introduce a new struct to cache random access points > dmg: New function to help us cache random access point > dmg: Refactor and prepare dmg_read_chunk() to cache random access > points > dmg: Handle zlib compressed chunks > dmg: Handle bz2 compressed/raw/zeroed chunks > dmg: Refactor dmg_co_preadv() to start reading multiple sectors > dmg: Limit the output buffer size to a max of 2MB > > block/dmg.c | 214 > +++++++++++++++++++++++++++++++++++++++--------------------- > block/dmg.h | 10 +++ > 2 files changed, 148 insertions(+), 76 deletions(-) > > -- > 2.6.2 >