Re: [PATCH v3] xfs: check for possible overflow in xfs_ioc_trim

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> [ Trimmed lkml from cc list.  There's no need to cc lkml on XFS
> specific stuff. ]
> 
> [ Trimmed linux-xfs@xxxxxxxxxxxxxxx as that is not a list any XFS
> developer is subscribed to. ]

Oh, it's good to know (I used get_maintainer script before).

> 
> On Thu, Aug 09, 2012 at 11:07:09AM +0200, Tomas Racek wrote:
> > If range.start or range.minlen is bigger than filesystem size,
> > return
> > invalid value error. This fixes possible overflow in BTOBB macro
> > when
> > passed value was nearly ULLONG_MAX.
> > 
> > Signed-off-by: Tomas Racek <tracek@xxxxxxxxxx>
> > ---
> >  fs/xfs/xfs_discard.c |    6 ++++--
> >  1 files changed, 4 insertions(+), 2 deletions(-)
> > 
> > diff --git a/fs/xfs/xfs_discard.c b/fs/xfs/xfs_discard.c
> > index f9c3fe3..4e07a56 100644
> > --- a/fs/xfs/xfs_discard.c
> > +++ b/fs/xfs/xfs_discard.c
> > @@ -179,12 +179,14 @@ xfs_ioc_trim(
> >  	 * used by the fstrim application.  In the end it really doesn't
> >  	 * matter as trimming blocks is an advisory interface.
> >  	 */
> > +	if (range.start >= XFS_FSB_TO_B(mp, mp->m_sb.sb_dblocks) ||
> > +	    range.minlen > XFS_FSB_TO_B(mp, mp->m_sb.sb_dblocks))
> > +		return -XFS_ERROR(EINVAL);
> 
> That's not correct for minlen. The maximum minlen we can
> support is the length of the largest freespace extent in the
> filesystem, and that is limited to the size of an AG. i.e.
> XFS_FSB_TO_B(mp, XFS_ALLOC_AG_MAX_USABLE(mp))

Will do, thank you!

Tomas

> 
> Cheers,
> 
> Dave.
> --
> Dave Chinner
> david@xxxxxxxxxxxxx
> 

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs


[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux