ext2fs: Return EINVAL for negative uio_offset as in UFS.

While here drop old comment that doesn't really apply.

MFC after:	1 month
Discussed with:	gleb
This commit is contained in:
Pedro F. Giffuni 2013-07-25 19:37:49 +00:00
parent 513bfc4fe2
commit 9670f48107

View File

@ -146,6 +146,8 @@ ext2_readdir(struct vop_readdir_args *ap)
int DIRBLKSIZ = VTOI(ap->a_vp)->i_e2fs->e2fs_bsize;
int error;
if (uio->uio_offset < 0)
return (EINVAL);
ip = VTOI(vp);
if (ap->a_ncookies != NULL) {
ncookies = uio->uio_resid;
@ -162,14 +164,6 @@ ext2_readdir(struct vop_readdir_args *ap)
ncookies = 0;
cookies = NULL;
}
/*
* Avoid complications for partial directory entries by adjusting
* the i/o to end at a block boundary. Don't give up (like ufs
* does) if the initial adjustment gives a negative count, since
* many callers don't supply a large enough buffer. The correct
* size is a little larger than DIRBLKSIZ to allow for expansion
* of directory entries, but some callers just use 512.
*/
offset = startoffset = uio->uio_offset;
startresid = uio->uio_resid;
error = 0;