aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2021-04-13 19:48:44 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2021-05-01 00:38:30 +0000
commitd13215b99d0b9d04de111dd469938e6854fc3493 (patch)
tree5b12cac75d8a3a83e5749955e0647b01e40efbea
parent72e1884f593f9b86c9ea4e74d02449f6678770dd (diff)
downloadsrc-d13215b99d0b9d04de111dd469938e6854fc3493.tar.gz
src-d13215b99d0b9d04de111dd469938e6854fc3493.zip
pseudofs: limit writes to 1M
(cherry picked from commit 5edf7227ec339f651c7328e63df323f6ef10345f)
-rw-r--r--sys/fs/pseudofs/pseudofs_vnops.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/fs/pseudofs/pseudofs_vnops.c b/sys/fs/pseudofs/pseudofs_vnops.c
index 6c025547b71b..510b6936d2fa 100644
--- a/sys/fs/pseudofs/pseudofs_vnops.c
+++ b/sys/fs/pseudofs/pseudofs_vnops.c
@@ -996,6 +996,9 @@ pfs_write(struct vop_write_args *va)
if (pn->pn_fill == NULL)
PFS_RETURN (EIO);
+ if (uio->uio_resid > PFS_MAXBUFSIZ)
+ PFS_RETURN (EIO);
+
/*
* This is necessary because either process' privileges may
* have changed since the open() call.