parallels: Check if data_end greater than the file size

Initially data_end is set to the data_off image header field and must not
be greater than the file size.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: Denis V. Lunev <den@openvz.org>
This commit is contained in:
Alexander Ivanov 2023-07-18 12:44:25 +02:00 committed by Denis V. Lunev
parent fcadb48662
commit 09eb64f9e3

View File

@ -874,6 +874,11 @@ static int parallels_open(BlockDriverState *bs, QDict *options, int flags,
*/ */
s->header_size = size; s->header_size = size;
} }
if (s->data_end > file_nb_sectors) {
error_setg(errp, "Invalid image: incorrect data_off field");
ret = -EINVAL;
goto fail;
}
ret = bdrv_pread(bs->file, 0, s->header_size, s->header, 0); ret = bdrv_pread(bs->file, 0, s->header_size, s->header, 0);
if (ret < 0) { if (ret < 0) {