Re: [Qemu-devel] [PATCH v1 04/15] qcow: require image size to be > 1 for new images
On Mon, Jan 16, 2017 at 08:41:15PM +0100, Max Reitz wrote: > On 03.01.2017 19:27, Daniel P. Berrange wrote: > > The qcow driver refuses to open images which are less than > > 2 bytes in size, but will happily create such images. Add > > a check in the create path to avoid this discrepancy. > > > > Signed-off-by: Daniel P. Berrange> > --- > > block/qcow.c | 6 ++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/block/qcow.c b/block/qcow.c > > index 7540f43..8133fda 100644 > > --- a/block/qcow.c > > +++ b/block/qcow.c > > @@ -799,6 +799,12 @@ static int qcow_create(const char *filename, QemuOpts > > *opts, Error **errp) > > /* Read out options */ > > total_size = ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0), > >BDRV_SECTOR_SIZE); > > +if (total_size <= 1) { > > +error_setg(errp, "Image size is too small (must be at least 2 > > bytes)"); > > +ret = -EINVAL; > > +goto cleanup; > > +} > > + > > Given the ROUND_UP() before, I can't see how total_size can be 1, but I > can see how it can be 0. Since that is covered by this condition: > > Reviewed-by: Max Reitz I'll switch to == 0 none the less Regards, Daniel -- |: http://berrange.com -o-http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://entangle-photo.org -o-http://search.cpan.org/~danberr/ :|
Re: [Qemu-devel] [PATCH v1 04/15] qcow: require image size to be > 1 for new images
On 03.01.2017 19:27, Daniel P. Berrange wrote: > The qcow driver refuses to open images which are less than > 2 bytes in size, but will happily create such images. Add > a check in the create path to avoid this discrepancy. > > Signed-off-by: Daniel P. Berrange> --- > block/qcow.c | 6 ++ > 1 file changed, 6 insertions(+) > > diff --git a/block/qcow.c b/block/qcow.c > index 7540f43..8133fda 100644 > --- a/block/qcow.c > +++ b/block/qcow.c > @@ -799,6 +799,12 @@ static int qcow_create(const char *filename, QemuOpts > *opts, Error **errp) > /* Read out options */ > total_size = ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0), >BDRV_SECTOR_SIZE); > +if (total_size <= 1) { > +error_setg(errp, "Image size is too small (must be at least 2 > bytes)"); > +ret = -EINVAL; > +goto cleanup; > +} > + Given the ROUND_UP() before, I can't see how total_size can be 1, but I can see how it can be 0. Since that is covered by this condition: Reviewed-by: Max Reitz > backing_file = qemu_opt_get_del(opts, BLOCK_OPT_BACKING_FILE); > if (qemu_opt_get_bool_del(opts, BLOCK_OPT_ENCRYPT, false)) { > flags |= BLOCK_FLAG_ENCRYPT; > signature.asc Description: OpenPGP digital signature