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
This commit is contained in:
parent
bf81eb3ca9
commit
8948179aba
@ -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);
|
||||
|
||||
/* Truncate requests to the end of providers media. */
|
||||
excess = bp->bio_offset + bp->bio_length;
|
||||
|
Loading…
x
Reference in New Issue
Block a user