struct vfat_super_block *vs;
struct msdos_super_block *ms;
unsigned char *vol_label = 0;
+ const unsigned char *boot_label = NULL;
unsigned char *vol_serno = NULL, vol_label_buf[12] = { 0 };
uint16_t sector_size = 0, reserved;
uint32_t cluster_count, fat_size;
const char *version = NULL;
- int i;
ms = blkid_probe_get_sb(pr, mag, struct msdos_super_block);
if (!ms)
vol_label = vol_label_buf;
}
- if (!vol_label || !memcmp(vol_label, no_name, 11))
- vol_label = ms->ms_label;
+ boot_label = ms->ms_label;
vol_serno = ms->ms_serno;
blkid_probe_set_value(pr, "SEC_TYPE", (unsigned char *) "msdos",
version = "FAT32";
- if (!vol_label || !memcmp(vol_label, no_name, 11))
- vol_label = vs->vs_label;
+ boot_label = vs->vs_label;
vol_serno = vs->vs_serno;
/*
}
}
- for (i = 10; i >= 0; i--) {
- if (vol_label[i] != ' ')
- break;
- vol_label[i] = '\0';
- }
+ if (boot_label && memcmp(boot_label, no_name, 11))
+ blkid_probe_set_id_label(pr, "LABEL_FATBOOT", (unsigned char *) boot_label, 11);
- if (vol_label && memcmp(vol_label, no_name, 11))
+ if (vol_label)
blkid_probe_set_label(pr, (unsigned char *) vol_label, 11);
/* We can't just print them as %04X, because they are unaligned */