> Author: sobomax
> Date: Tue Nov  6 15:55:41 2018
> New Revision: 340187
> URL: https://svnweb.freebsd.org/changeset/base/340187
> 
> Log:
>   Don't allow BIO_READ, BIO_WRITE or BIO_DELETE requests that are
>   fully beyond the end of providers media. The only exception is made
>   for the zero length transfers which are allowed to be just on the
>   boundary. Previously, any requests starting on the boundary (i.e. next
>   byte after the last one) have been allowed to go through.
>   
>   No response from:   freebsd-geom@, phk
>   MFC after:          1 month
> 
> Modified:
>   head/sys/geom/geom_io.c
> 
> Modified: head/sys/geom/geom_io.c
> ==============================================================================
> --- head/sys/geom/geom_io.c   Tue Nov  6 15:52:49 2018        (r340186)
> +++ head/sys/geom/geom_io.c   Tue Nov  6 15:55:41 2018        (r340187)
> @@ -420,6 +420,8 @@ g_io_check(struct bio *bp)
>                       return (EIO);
>               if (bp->bio_offset > pp->mediasize)
>                       return (EIO);
> +             if (bp->bio_offset == pp->mediasize && bp->bio_length > 0)
> +                     return (EIO);

Isnt mediasize 0 based, such that any operation at pp->mediasize is
technically past the end of the media and should get an EIO no
matter how big it is?

Who is doing 0 byte operations at pp->mediasize?
That code should probably be fixed rather than allowing
this special case here.

>               /* Truncate requests to the end of providers media. */
>               excess = bp->bio_offset + bp->bio_length;
> 
> 

-- 
Rod Grimes                                                 rgri...@freebsd.org
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to