Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Jan 2018 16:34:00 +0000 (UTC)
From:      "Pedro F. Giffuni" <pfg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r328480 - in head/sys: fs/ext2fs ufs/ufs
Message-ID:  <201801271634.w0RGY0gO087567@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pfg
Date: Sat Jan 27 16:34:00 2018
New Revision: 328480
URL: https://svnweb.freebsd.org/changeset/base/328480

Log:
  Revert r328479:
  {ext2|ufs}_readdir: Set limit on valid ncookies values.
  
  We aren't allowed to set resid like this.
  
  Pointed out by:	kib, imp

Modified:
  head/sys/fs/ext2fs/ext2_lookup.c
  head/sys/ufs/ufs/ufs_vnops.c

Modified: head/sys/fs/ext2fs/ext2_lookup.c
==============================================================================
--- head/sys/fs/ext2fs/ext2_lookup.c	Sat Jan 27 15:33:52 2018	(r328479)
+++ head/sys/fs/ext2fs/ext2_lookup.c	Sat Jan 27 16:34:00 2018	(r328480)
@@ -145,18 +145,14 @@ ext2_readdir(struct vop_readdir_args *ap)
 	off_t offset, startoffset;
 	size_t readcnt, skipcnt;
 	ssize_t startresid;
-	int ncookies;
+	u_int ncookies;
 	int DIRBLKSIZ = VTOI(ap->a_vp)->i_e2fs->e2fs_bsize;
 	int error;
 
 	if (uio->uio_offset < 0)
 		return (EINVAL);
 	ip = VTOI(vp);
-	if (uio->uio_resid < 0)
-		uio->uio_resid = 0;
 	if (ap->a_ncookies != NULL) {
-		if (uio->uio_resid > MAXPHYS)
-			uio->uio_resid = MAXPHYS;
 		ncookies = uio->uio_resid;
 		if (uio->uio_offset >= ip->i_size)
 			ncookies = 0;

Modified: head/sys/ufs/ufs/ufs_vnops.c
==============================================================================
--- head/sys/ufs/ufs/ufs_vnops.c	Sat Jan 27 15:33:52 2018	(r328479)
+++ head/sys/ufs/ufs/ufs_vnops.c	Sat Jan 27 16:34:00 2018	(r328480)
@@ -2170,7 +2170,7 @@ ufs_readdir(ap)
 	off_t offset, startoffset;
 	size_t readcnt, skipcnt;
 	ssize_t startresid;
-	int ncookies;
+	u_int ncookies;
 	int error;
 
 	if (uio->uio_offset < 0)
@@ -2178,11 +2178,7 @@ ufs_readdir(ap)
 	ip = VTOI(vp);
 	if (ip->i_effnlink == 0)
 		return (0);
-	if (uio->uio_resid < 0)
-		uio->uio_resid = 0;
 	if (ap->a_ncookies != NULL) {
-		if (uio->uio_resid > MAXPHYS)
-			uio->uio_resid = MAXPHYS;
 		ncookies = uio->uio_resid;
 		if (uio->uio_offset >= ip->i_size)
 			ncookies = 0;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801271634.w0RGY0gO087567>