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? -Eric > if (fread(block_index, block_size - sizeof(tmb), 1, src_f) != 1) > fatal("error reading from file: %s\n", strerror(errno)); > > _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs