summaryrefslogtreecommitdiffstats
path: root/sys/fs/msdosfs
diff options
context:
space:
mode:
authortrhodes <trhodes@FreeBSD.org>2003-07-03 14:54:47 +0000
committertrhodes <trhodes@FreeBSD.org>2003-07-03 14:54:47 +0000
commit992424e04cb1bcbf73836635d42aeefd1bde73b9 (patch)
tree4e31c0bc0d9cd1f73b670d3e091557ca242a10e2 /sys/fs/msdosfs
parent13708eb5d055f1af7a5bad4f45bc5c121dfdc80a (diff)
downloadFreeBSD-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
Diffstat (limited to 'sys/fs/msdosfs')
-rw-r--r--sys/fs/msdosfs/msdosfs_vnops.c4
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
OpenPOWER on IntegriCloud