Truncate read request rather than returning EIO if the request is

larger than MAXPHYS + 1. This fixes a problem with cat(1) when it
uses a large I/O buffer.

Reported by:	Fernando Apesteguía
Suggested by:	jilles
Reviewed by:	des
Approved by:	trasz (mentor)
This commit is contained in:
Jaakko Heinonen 2010-01-22 08:45:12 +00:00
parent 663fdad84b
commit e48fbf26e8
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=202783

View File

@ -637,10 +637,8 @@ pfs_read(struct vop_read_args *va)
error = EINVAL;
goto ret;
}
if (buflen > MAXPHYS + 1) {
error = EIO;
goto ret;
}
if (buflen > MAXPHYS + 1)
buflen = MAXPHYS + 1;
sb = sbuf_new(sb, NULL, buflen, 0);
if (sb == NULL) {