{ext2|ufs}_readdir: Avoid setting negative ncookies.
ncookies cannot be negative or the allocator will fail. This should only happen if a caller is very broken but we can still try to survive the event. We should probably also verify for uio_resid > MAXPHYS but in that case it is not clear that just clipping the ncookies value is an adequate response. MFC after: 2 weeks
This commit is contained in:
parent
7f4e81c493
commit
999ae367a8
@ -153,7 +153,10 @@ ext2_readdir(struct vop_readdir_args *ap)
|
||||
return (EINVAL);
|
||||
ip = VTOI(vp);
|
||||
if (ap->a_ncookies != NULL) {
|
||||
ncookies = uio->uio_resid;
|
||||
if (uio->uio_resid < 0)
|
||||
ncookies = 0;
|
||||
else
|
||||
ncookies = uio->uio_resid;
|
||||
if (uio->uio_offset >= ip->i_size)
|
||||
ncookies = 0;
|
||||
else if (ip->i_size - uio->uio_offset < ncookies)
|
||||
|
@ -2179,7 +2179,10 @@ ufs_readdir(ap)
|
||||
if (ip->i_effnlink == 0)
|
||||
return (0);
|
||||
if (ap->a_ncookies != NULL) {
|
||||
ncookies = uio->uio_resid;
|
||||
if (uio->uio_resid < 0)
|
||||
ncookies = 0;
|
||||
else
|
||||
ncookies = uio->uio_resid;
|
||||
if (uio->uio_offset >= ip->i_size)
|
||||
ncookies = 0;
|
||||
else if (ip->i_size - uio->uio_offset < ncookies)
|
||||
|
Loading…
x
Reference in New Issue
Block a user