]> git.sven.stormbind.net Git - sven/exfatprogs.git/blobdiff - mkfs/mkfs.c
New upstream version 1.2.0
[sven/exfatprogs.git] / mkfs / mkfs.c
index b5b4957c72158bf844c2b69a4d4bb9a2b448d01c..f9e5bb4d49cbb04be22ece70d1a4a1f748145c5c 100644 (file)
@@ -314,12 +314,13 @@ static int exfat_create_bitmap(struct exfat_blk_dev *bd)
        char *bitmap;
        unsigned int i, nbytes;
 
-       bitmap = calloc(finfo.bitmap_byte_len, sizeof(*bitmap));
+       bitmap = calloc(round_up(finfo.bitmap_byte_len, sizeof(bitmap_t)),
+                       sizeof(*bitmap));
        if (!bitmap)
                return -1;
 
-       for (i = 0; i < finfo.used_clu_cnt - EXFAT_FIRST_CLUSTER; i++)
-               exfat_set_bit(bd, bitmap, i);
+       for (i = EXFAT_FIRST_CLUSTER; i < finfo.used_clu_cnt; i++)
+               exfat_bitmap_set(bitmap, i);
 
        nbytes = pwrite(bd->dev_fd, bitmap, finfo.bitmap_byte_len, finfo.bitmap_byte_off);
        if (nbytes != finfo.bitmap_byte_len) {
@@ -336,7 +337,7 @@ static int exfat_create_bitmap(struct exfat_blk_dev *bd)
 static int exfat_create_root_dir(struct exfat_blk_dev *bd,
                struct exfat_user_input *ui)
 {
-       struct exfat_dentry ed[3];
+       struct exfat_dentry ed[3] = {0};
        int dentries_len = sizeof(struct exfat_dentry) * 3;
        int nbytes;