From afa0aecaed5eff810cfd05dce22a6965f223c78b Mon Sep 17 00:00:00 2001 From: Antonio Huete Jimenez Date: Tue, 22 Jan 2013 23:25:54 +0100 Subject: [PATCH] msdosfs - Handle a 0-length buffer case. If bread() returns a zero-length buffer, as can happen after a failed write, return an error instead of looping forever. Obtained-from: FreeBSD (r117200) --- sys/vfs/msdosfs/msdosfs_vnops.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/vfs/msdosfs/msdosfs_vnops.c b/sys/vfs/msdosfs/msdosfs_vnops.c index 222a29e..9785b9f 100644 --- a/sys/vfs/msdosfs/msdosfs_vnops.c +++ b/sys/vfs/msdosfs/msdosfs_vnops.c @@ -1629,6 +1629,10 @@ msdosfs_readdir(struct vop_readdir_args *ap) goto done; } n = min(n, blsize - bp->b_resid); + if (n == 0) { + brelse(bp); + return (EIO); + } /* * Convert from dos directory entries to fs-independent -- 1.7.12