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

Dave Chinner david at fromorbit.com
Wed Dec 2 23:59:34 CST 2015


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 at samsung.com>
> > ---
> >  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 at fromorbit.com



More information about the xfs mailing list