git: fb273fe70f8b - main - unionfs: replace zero-length read check with KASSERT
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 06 Nov 2021 14:02:20 UTC
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;