On Mon, 5 Jun 2017, Ondrej Mosnacek wrote:

> Before this patch, dm-integrity would successfully create mappings with
> the number of sectors greater than the provided data sector count.
> Attempts to read sectors of this mapping that were beyond the provided
> data sector count would then yield run-time messages of the form
> "device-mapper: integrity: Too big sector number: ...".
> 
> This patch fixes this by emitting an error when the requested mapping
> size is bigger than the provided data sector count.
> 
> Cc: Mikulas Patocka <[email protected]>
> Cc: Milan Broz <[email protected]>

Acked-by: Mikulas Patocka <[email protected]>

> Signed-off-by: Ondrej Mosnacek <[email protected]>
> ---
>  drivers/md/dm-integrity.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/md/dm-integrity.c b/drivers/md/dm-integrity.c
> index 7910bfe50da4..4ab10cf718c9 100644
> --- a/drivers/md/dm-integrity.c
> +++ b/drivers/md/dm-integrity.c
> @@ -3040,6 +3040,11 @@ static int dm_integrity_ctr(struct dm_target *ti, 
> unsigned argc, char **argv)
>               ti->error = "The device is too small";
>               goto bad;
>       }
> +     if (ti->len > ic->provided_data_sectors) {
> +             r = -EINVAL;
> +             ti->error = "Not enough provided sectors for requested mapping 
> size";
> +             goto bad;
> +     }
>  
>       if (!buffer_sectors)
>               buffer_sectors = 1;
> -- 
> 2.11.0
> 

--
dm-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to