[PATCH 05/11] xfsprogs: xfs_mdrestore: check bad read count in perform_restore
Eric Sandeen
sandeen at sandeen.net
Thu Dec 3 00:05:22 CST 2015
On 12/2/15 11:59 PM, Dave Chinner wrote:
> 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.
Or that ... FWIW this one does not even show up in the coverity scan project
as an issue.
-Eric
> Cheers,
>
> Dave.
>
More information about the xfs
mailing list