xfs
[Top] [All Lists]

Re: [PATCH 9/9] xfs: check for valid indices in xfs_iext_get_ext and xfs

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH 9/9] xfs: check for valid indices in xfs_iext_get_ext and xfs_iext_idx_to_irec
From: Lachlan McIlroy <lmcilroy@xxxxxxxxxx>
Date: Thu, 12 May 2011 03:26:48 -0400 (EDT)
Cc: xfs@xxxxxxxxxxx
In-reply-to: <20110511150713.039506186@xxxxxxxxxxxxxxxxxxxxxx>
Reply-to: Lachlan McIlroy <lmcilroy@xxxxxxxxxx>
Looks good too.

Christoph, thanks for following up on these fixes - I didn't know they
didn't make it in.

----- Original Message -----
> Based on an earlier patch from Lachlan McIlroy.
> 
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> 
> Index: xfs/fs/xfs/xfs_inode.c
> ===================================================================
> --- xfs.orig/fs/xfs/xfs_inode.c 2011-05-11 12:05:12.943735034 +0200
> +++ xfs/fs/xfs/xfs_inode.c 2011-05-11 12:05:28.327733646 +0200
> @@ -3108,6 +3108,8 @@ xfs_iext_get_ext(
> xfs_extnum_t idx) /* index of target extent */
> {
> ASSERT(idx >= 0);
> + ASSERT(idx < ifp->if_bytes / sizeof(xfs_bmbt_rec_t));
> +
> if ((ifp->if_flags & XFS_IFEXTIREC) && (idx == 0)) {
> return ifp->if_u1.if_ext_irec->er_extbuf;
> } else if (ifp->if_flags & XFS_IFEXTIREC) {
> @@ -3881,8 +3883,10 @@ xfs_iext_idx_to_irec(
> xfs_extnum_t page_idx = *idxp; /* extent index in target list */
> 
> ASSERT(ifp->if_flags & XFS_IFEXTIREC);
> - ASSERT(page_idx >= 0 && page_idx <=
> - ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t));
> + ASSERT(page_idx >= 0);
> + ASSERT(page_idx <= ifp->if_bytes / sizeof(xfs_bmbt_rec_t));
> + ASSERT(page_idx < ifp->if_bytes / sizeof(xfs_bmbt_rec_t) ||
> realloc);
> +
> nlists = ifp->if_real_bytes / XFS_IEXT_BUFSZ;
> erp_idx = 0;
> low = 0;
> 
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs

<Prev in Thread] Current Thread [Next in Thread>