Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/mkfat/mkfat.c

    red9bf14 rf73b291  
    102102        cfg.addt_res_sectors = 0;
    103103        cfg.root_ent_max = 128;
    104         cfg.fat_type = FATAUTO;
     104        cfg.fat_type = FAT16;
    105105
    106106        if (argc < 2) {
     
    162162        }
    163163
    164         rc = block_init(service_id, 2048);
     164        rc = block_init(EXCHANGE_SERIALIZE, service_id, 2048);
    165165        if (rc != EOK)  {
    166166                printf(NAME ": Error initializing libblock.\n");
     
    189189        }
    190190
    191         if (cfg.fat_type != FATAUTO && cfg.fat_type != FAT12 && cfg.fat_type != FAT16 &&
    192             cfg.fat_type != FAT32) {
     191        if (cfg.fat_type != FAT12 && cfg.fat_type != FAT16 && cfg.fat_type != FAT32) {
    193192                printf(NAME ": Error. Unknown FAT type.\n");
    194193                return 2;
     
    248247            cfg->sectors_per_cluster);
    249248
    250         if (cfg->total_clusters <= FAT12_CLST_MAX) {
    251                 if (cfg->fat_type == FATAUTO)
    252                         cfg->fat_type = FAT12;
    253                 else if (cfg->fat_type != FAT12)
    254                         return EINVAL;
    255         } else if (cfg->total_clusters <= FAT16_CLST_MAX) {
    256                 if (cfg->fat_type == FATAUTO)
    257                         cfg->fat_type = FAT16;
    258                 else if (cfg->fat_type != FAT16)
    259                         return EINVAL;
    260         } else {
    261                 if (cfg->fat_type == FATAUTO)
    262                         cfg->fat_type = FAT32;
    263                 else if (cfg->fat_type != FAT32)
    264                         return EINVAL;
    265         }
     249        if ((cfg->fat_type == FAT12 && cfg->total_clusters > FAT12_CLST_MAX) ||
     250            (cfg->fat_type == FAT16 && (cfg->total_clusters <= FAT12_CLST_MAX ||
     251            cfg->total_clusters > FAT16_CLST_MAX)) ||
     252            (cfg->fat_type == FAT32 && cfg->total_clusters <= FAT16_CLST_MAX))
     253                return ENOSPC;
    266254
    267255        fat_bytes = div_round_up((cfg->total_clusters + 2) *
Note: See TracChangeset for help on using the changeset viewer.