Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Nov 2021 14:02:20 GMT
From:      "Jason A. Harmening" <jah@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: fb273fe70f8b - main - unionfs: replace zero-length read check with KASSERT
Message-ID:  <202111061402.1A6E2KcX023358@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by jah:

URL: https://cgit.FreeBSD.org/src/commit/?id=fb273fe70f8be66bb946c5a2ea1e53042bbada48

commit fb273fe70f8be66bb946c5a2ea1e53042bbada48
Author:     Jason A. Harmening <jah@FreeBSD.org>
AuthorDate: 2021-10-28 05:31:52 +0000
Commit:     Jason A. Harmening <jah@FreeBSD.org>
CommitDate: 2021-11-06 14:08:34 +0000

    unionfs: replace zero-length read check with KASSERT
    
    The lower FS VOP_READDIR() shouldn't return an empty read without
    setting EOF; don't try to handle this case only for non-DIAGNOSTIC
    builds.
    
    Noted by:       kib
    Reviewed by:    kib
    Differential Revision:  https://reviews.freebsd.org/D32629
---
 sys/fs/unionfs/union_subr.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/sys/fs/unionfs/union_subr.c b/sys/fs/unionfs/union_subr.c
index 0ca209c47502..8269b1e11fa4 100644
--- a/sys/fs/unionfs/union_subr.c
+++ b/sys/fs/unionfs/union_subr.c
@@ -1251,13 +1251,8 @@ unionfs_check_rmdir(struct vnode *vp, struct ucred *cred, struct thread *td)
 		error = VOP_READDIR(lvp, &uio, cred, &eofflag, NULL, NULL);
 		if (error != 0)
 			break;
-		if (eofflag == 0 && uio.uio_resid == sizeof(buf)) {
-#ifdef DIAGNOSTIC
-			panic("%s: bad readdir response from lower FS",
-			    __func__);
-#endif
-			break;
-		}
+		KASSERT(eofflag != 0 || uio.uio_resid < sizeof(buf),
+		    ("%s: empty read from lower FS", __func__));
 
 		edp = (struct dirent*)&buf[sizeof(buf) - uio.uio_resid];
 		for (dp = (struct dirent*)buf; !error && dp < edp;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202111061402.1A6E2KcX023358>