diff options
author | trhodes <trhodes@FreeBSD.org> | 2003-07-03 14:54:47 +0000 |
---|---|---|
committer | trhodes <trhodes@FreeBSD.org> | 2003-07-03 14:54:47 +0000 |
commit | 992424e04cb1bcbf73836635d42aeefd1bde73b9 (patch) | |
tree | 4e31c0bc0d9cd1f73b670d3e091557ca242a10e2 | |
parent | 13708eb5d055f1af7a5bad4f45bc5c121dfdc80a (diff) | |
download | FreeBSD-src-992424e04cb1bcbf73836635d42aeefd1bde73b9.zip FreeBSD-src-992424e04cb1bcbf73836635d42aeefd1bde73b9.tar.gz |
If bread() returns a zero-length buffer, as can happen after a
failed write, return an error instead of looping forever.
PR: 37035
Submitted by: das
-rw-r--r-- | sys/fs/msdosfs/msdosfs_vnops.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/fs/msdosfs/msdosfs_vnops.c b/sys/fs/msdosfs/msdosfs_vnops.c index 6a83414..bce6b0d 100644 --- a/sys/fs/msdosfs/msdosfs_vnops.c +++ b/sys/fs/msdosfs/msdosfs_vnops.c @@ -1571,6 +1571,10 @@ msdosfs_readdir(ap) return (error); } n = min(n, blsize - bp->b_resid); + if (n == 0) { + brelse(bp); + return (EIO); + } /* * Convert from dos directory entries to fs-independent |