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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux