Guard against transfers of zero length given to *strategy.

This commit is contained in:
Søren Schmidt 2000-01-07 12:01:01 +00:00
parent 3abe5082ad
commit af86437301
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=55546
3 changed files with 16 additions and 2 deletions

View File

@ -301,6 +301,13 @@ adstrategy(struct buf *bp)
struct ad_softc *adp = bp->b_dev->si_drv1;
int32_t s;
/* if it's a null transfer, return immediatly. */
if (bp->b_bcount == 0) {
bp->b_resid = 0;
biodone(bp);
return;
}
s = splbio();
bufqdisksort(&adp->queue, bp);
ad_start(adp);

View File

@ -1030,7 +1030,7 @@ acdstrategy(struct buf *bp)
return;
}
#endif
/* if it's a null transfer, return immediatly. */
if (bp->b_bcount == 0) {
bp->b_resid = 0;
biodone(bp);

View File

@ -254,6 +254,13 @@ afdstrategy(struct buf *bp)
struct afd_softc *fdp = bp->b_dev->si_drv1;
int32_t s;
/* if it's a null transfer, return immediatly. */
if (bp->b_bcount == 0) {
bp->b_resid = 0;
biodone(bp);
return;
}
s = splbio();
bufq_insert_tail(&fdp->buf_queue, bp);
afd_start(fdp);
@ -267,7 +274,7 @@ afd_start(struct afd_softc *fdp)
u_int32_t lba, count;
int8_t ccb[16];
int8_t *data_ptr;
if (!bp)
return;