From 5b375171a01b777bc1ec74637e45b835f606a70f Mon Sep 17 00:00:00 2001 From: "resver@gmail.com" Date: Wed, 7 May 2014 19:22:56 +0000 Subject: [PATCH] Fixed potential garbage at the end of clusters bitmap. git-svn-id: http://exfat.googlecode.com/svn/trunk@400 60bc1c72-a15a-11de-b98f-4500b42dc123 --- mkfs/cbm.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mkfs/cbm.c b/mkfs/cbm.c index 865ce90..c4a2afd 100644 --- a/mkfs/cbm.c +++ b/mkfs/cbm.c @@ -21,6 +21,7 @@ */ #include +#include #include "cbm.h" #include "fat.h" #include "uct.h" @@ -45,20 +46,20 @@ static int cbm_write(struct exfat_dev* dev) DIV_ROUND_UP(uct.get_size(), get_cluster_size()) + DIV_ROUND_UP(rootdir.get_size(), get_cluster_size()); size_t bitmap_size = DIV_ROUND_UP(allocated_clusters, CHAR_BIT); - uint8_t* bitmap = malloc(bitmap_size); + bitmap_t* bitmap = malloc(BMAP_SIZE(bitmap_size)); size_t i; if (bitmap == NULL) { - exfat_error("failed to allocate bitmap of %zu bytes", bitmap_size); + exfat_error("failed to allocate bitmap of %zu bytes", + BMAP_SIZE(bitmap_size)); return 1; } + memset(bitmap, 0, BMAP_SIZE(bitmap_size)); for (i = 0; i < bitmap_size * CHAR_BIT; i++) if (i < allocated_clusters) BMAP_SET(bitmap, i); - else - BMAP_CLR(bitmap, i); if (exfat_write(dev, bitmap, bitmap_size) < 0) { exfat_error("failed to write bitmap of %zu bytes", bitmap_size); -- 2.11.0