xfs
[Top] [All Lists]

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

To: xfs@xxxxxxxxxxx
Subject: [PATCH 05/11] xfsprogs: xfs_mdrestore: check bad read count in perform_restore
From: Vivek Trivedi <t.vivek@xxxxxxxxxxx>
Date: Wed, 02 Dec 2015 16:49:21 +0530
Cc: a.sahrawat@xxxxxxxxxxx, pankaj.m@xxxxxxxxxxx, Vivek Trivedi <t.vivek@xxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Dlp-filter: Pass
In-reply-to: <1449055167-19936-1-git-send-email-t.vivek@xxxxxxxxxxx>
References: <1449055167-19936-1-git-send-email-t.vivek@xxxxxxxxxxx>
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));
+
        if (fread(block_index, block_size - sizeof(tmb), 1, src_f) != 1)
                fatal("error reading from file: %s\n", strerror(errno));
 
-- 
1.7.9.5

<Prev in Thread] Current Thread [Next in Thread>