We reserved one segment for NAT region at least, so when formatting
fs, calculated maximum size of left space in CP page should be:
CHECKSUM_OFFSET - sizeof(struct f2fs_checkpoint) + 1 - 64 (size of
reserved NAT bitmap).

Fix the incorrect calculated size to avoid potential overflow bug here.

Signed-off-by: Chao Yu <[email protected]>
---
 mkfs/f2fs_format.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c
index c4b17de..a2f33f9 100644
--- a/mkfs/f2fs_format.c
+++ b/mkfs/f2fs_format.c
@@ -220,7 +220,7 @@ static int f2fs_prepare_super_block(void)
         * When sit is too large, we should expand cp area. It requires more 
pages for cp.
         */
        if (max_sit_bitmap_size >
-                       (CHECKSUM_OFFSET - sizeof(struct f2fs_checkpoint) + 
65)) {
+                       (CHECKSUM_OFFSET - sizeof(struct f2fs_checkpoint) + 1 - 
64)) {
                max_nat_bitmap_size = CHECKSUM_OFFSET - sizeof(struct 
f2fs_checkpoint) + 1;
                set_sb(cp_payload, F2FS_BLK_ALIGN(max_sit_bitmap_size));
        } else {
-- 
2.6.3



------------------------------------------------------------------------------
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to