[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