diff options
author | Mark Johnston <markj@FreeBSD.org> | 2021-05-31 22:56:34 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2021-05-31 22:59:18 +0000 |
commit | b2f9575646f89cdddcad76acae3e9305535506a2 (patch) | |
tree | 5b01d019fc31fd317045dfaa69cac77ee98ae0d2 | |
parent | f96603b56f0f74fa52d8f1ef0be869fca7305b99 (diff) | |
download | src-b2f9575646f89cdddcad76acae3e9305535506a2.tar.gz src-b2f9575646f89cdddcad76acae3e9305535506a2.zip |
ffs: Correct the input size check in sysctl_ffs_fsck()
Make sure we return an error if no input was specified, since
SYSCTL_IN() will report success in that case.
Reported by: KMSAN
Reviewed by: mckusick
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D30586
-rw-r--r-- | sys/ufs/ffs/ffs_alloc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c index c7a1e2dec15e..c895c8c7bf07 100644 --- a/sys/ufs/ffs/ffs_alloc.c +++ b/sys/ufs/ffs/ffs_alloc.c @@ -3211,9 +3211,9 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS) cap_rights_t rights; int filetype, error; - if (req->newlen > sizeof cmd) + if (req->newptr == NULL || req->newlen > sizeof(cmd)) return (EBADRPC); - if ((error = SYSCTL_IN(req, &cmd, sizeof cmd)) != 0) + if ((error = SYSCTL_IN(req, &cmd, sizeof(cmd))) != 0) return (error); if (cmd.version != FFS_CMD_VERSION) return (ERPCMISMATCH); |