xfs
[Top] [All Lists]

Re: [PATCH 05/11] xfsprogs: xfs_mdrestore: check bad read count in perfo

To: Eric Sandeen <sandeen@xxxxxxxxxxx>
Subject: Re: [PATCH 05/11] xfsprogs: xfs_mdrestore: check bad read count in perform_restore
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Thu, 3 Dec 2015 16:59:34 +1100
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <565FCAFB.5020502@xxxxxxxxxxx>
References: <1449055167-19936-1-git-send-email-t.vivek@xxxxxxxxxxx> <1449055167-19936-6-git-send-email-t.vivek@xxxxxxxxxxx> <565FCAFB.5020502@xxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Wed, Dec 02, 2015 at 10:54:19PM -0600, Eric Sandeen wrote:
> On 12/2/15 5:19 AM, Vivek Trivedi wrote:
> > fix error reported by coverity - Integer overflowed argument
> > 
> > also, add print incase of invalid read count to get more debug
> > information.
> > 
> > Signed-off-by: Vivek Trivedi <t.vivek@xxxxxxxxxxx>
> > ---
> >  mdrestore/xfs_mdrestore.c |    4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/mdrestore/xfs_mdrestore.c b/mdrestore/xfs_mdrestore.c
> > index 5764616..a87a091 100644
> > --- a/mdrestore/xfs_mdrestore.c
> > +++ b/mdrestore/xfs_mdrestore.c
> > @@ -93,6 +93,10 @@ perform_restore(
> >     block_index = (__be64 *)((char *)metablock + sizeof(xfs_metablock_t));
> >     block_buffer = (char *)metablock + block_size;
> >  
> > +   if (block_size < sizeof(tmb))
> > +           fatal("bad read count, block_size: %d, tmb size %d\n",
> > +                           block_size, sizeof(tmb));
> > +
> 
> block_size is block_size = 1 << tmb.mb_blocklog; where mb_blocklog is
> always metablock->mb_blocklog = BBSHIFT;, so block_size is always 512.
> 
> On the other hand, sizeof(tmb) is simply 8.
> 
> There seems to be no possible path for this to be a problem, so it hardly
> seems worth the printf.
> 
> Would an ASSERT(block_size >= sizeof(tmb)) make coverity happy?

Just ignoring this coverity warning would be more appropriate, i
think.

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

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