* 'master' of https://github.com/pali/util-linux:
  tests: Add tests for FAT32 labels
  blkid: Encode any field which starts with LABEL in same way as LABEL field
  libblkid: vfat: Change parsing label in special cases
This commit is contained in:
Karel Zak 2018-03-27 12:54:53 +02:00
commit 04060bc3f1
41 changed files with 142 additions and 6 deletions

View File

@ -308,6 +308,7 @@ static int probe_vfat(blkid_probe pr, const struct blkid_idmag *mag)
struct vfat_super_block *vs;
struct msdos_super_block *ms;
const unsigned char *vol_label = NULL;
const unsigned char *boot_label = NULL;
unsigned char *vol_serno = NULL, vol_label_buf[11];
uint16_t sector_size = 0, reserved;
uint32_t cluster_count, fat_size;
@ -338,8 +339,7 @@ static int probe_vfat(blkid_probe pr, const struct blkid_idmag *mag)
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",
@ -393,8 +393,7 @@ static int probe_vfat(blkid_probe pr, const struct blkid_idmag *mag)
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;
/*
@ -423,7 +422,10 @@ static int probe_vfat(blkid_probe pr, const struct blkid_idmag *mag)
}
}
if (vol_label && memcmp(vol_label, no_name, 11))
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)
blkid_probe_set_label(pr, (unsigned char *) vol_label, 11);
/* We can't just print them as %04X, because they are unaligned */

View File

@ -254,7 +254,7 @@ static void print_udev_format(const char *name, const char *value)
printf("ID_FS_%s=%s\n", name, enc);
} else if (!strcmp(name, "UUID") ||
!strcmp(name, "LABEL") ||
!strncmp(name, "LABEL", 5) ||
!strcmp(name, "UUID_SUB")) {
blkid_safe_string(value, safe, sizeof(safe));

View File

@ -1,5 +1,7 @@
ID_FS_LABEL=TEST-FAT
ID_FS_LABEL_ENC=TEST-FAT
ID_FS_LABEL_FATBOOT=TEST-FAT
ID_FS_LABEL_FATBOOT_ENC=TEST-FAT
ID_FS_SEC_TYPE=msdos
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem

View File

@ -1,5 +1,7 @@
ID_FS_LABEL=___
ID_FS_LABEL_ENC=\xe5\xe5\xe5
ID_FS_LABEL_FATBOOT=___
ID_FS_LABEL_FATBOOT_ENC=\xe5\xe5\xe5
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=2826-F9B3

View File

@ -0,0 +1,9 @@
ID_FS_LABEL=label1
ID_FS_LABEL_ENC=label1
ID_FS_LABEL_FATBOOT=label1
ID_FS_LABEL_FATBOOT_ENC=label1
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=92B4-BA66
ID_FS_UUID_ENC=92B4-BA66
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,7 @@
ID_FS_LABEL=NO_NAME
ID_FS_LABEL_ENC=NO\x20NAME
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=92B4-BA66
ID_FS_UUID_ENC=92B4-BA66
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,5 @@
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=92B4-BA66
ID_FS_UUID_ENC=92B4-BA66
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,9 @@
ID_FS_LABEL=label2
ID_FS_LABEL_ENC=label2
ID_FS_LABEL_FATBOOT=label2
ID_FS_LABEL_FATBOOT_ENC=label2
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=92B4-BA66
ID_FS_UUID_ENC=92B4-BA66
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,7 @@
ID_FS_LABEL=NO_NAME
ID_FS_LABEL_ENC=NO\x20NAME
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=92B4-BA66
ID_FS_UUID_ENC=92B4-BA66
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,5 @@
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=92B4-BA66
ID_FS_UUID_ENC=92B4-BA66
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,7 @@
ID_FS_LABEL_FATBOOT=label1
ID_FS_LABEL_FATBOOT_ENC=label1
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=92B4-BA66
ID_FS_UUID_ENC=92B4-BA66
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,9 @@
ID_FS_LABEL=LABEL2
ID_FS_LABEL_ENC=LABEL2
ID_FS_LABEL_FATBOOT=label1
ID_FS_LABEL_FATBOOT_ENC=label1
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=92B4-BA66
ID_FS_UUID_ENC=92B4-BA66
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,5 @@
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=E6B8-AF8C
ID_FS_UUID_ENC=E6B8-AF8C
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,5 @@
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=E6B8-AF8C
ID_FS_UUID_ENC=E6B8-AF8C
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,7 @@
ID_FS_LABEL_FATBOOT=label1
ID_FS_LABEL_FATBOOT_ENC=label1
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=E6B8-AF8C
ID_FS_UUID_ENC=E6B8-AF8C
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,9 @@
ID_FS_LABEL=LABEL2
ID_FS_LABEL_ENC=LABEL2
ID_FS_LABEL_FATBOOT=label1
ID_FS_LABEL_FATBOOT_ENC=label1
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=E6B8-AF8C
ID_FS_UUID_ENC=E6B8-AF8C
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,7 @@
ID_FS_LABEL=LABEL1
ID_FS_LABEL_ENC=LABEL1
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=E6B8-AF8C
ID_FS_UUID_ENC=E6B8-AF8C
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,9 @@
ID_FS_LABEL=label2
ID_FS_LABEL_ENC=label2
ID_FS_LABEL_FATBOOT=label2
ID_FS_LABEL_FATBOOT_ENC=label2
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=E6B8-AF8C
ID_FS_UUID_ENC=E6B8-AF8C
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,7 @@
ID_FS_LABEL=LABEL1
ID_FS_LABEL_ENC=LABEL1
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=A420-9304
ID_FS_UUID_ENC=A420-9304
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,5 @@
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=54B6-DC94
ID_FS_UUID_ENC=54B6-DC94
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,7 @@
ID_FS_LABEL_FATBOOT=label1
ID_FS_LABEL_FATBOOT_ENC=label1
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=54B6-DC94
ID_FS_UUID_ENC=54B6-DC94
ID_FS_VERSION=FAT32

View File

@ -0,0 +1,9 @@
ID_FS_LABEL=LABEL1
ID_FS_LABEL_ENC=LABEL1
ID_FS_LABEL_FATBOOT=LABEL1
ID_FS_LABEL_FATBOOT_ENC=LABEL1
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=54B6-DC94
ID_FS_UUID_ENC=54B6-DC94
ID_FS_VERSION=FAT32

View File

@ -1,5 +1,7 @@
ID_FS_LABEL=TESTVFAT
ID_FS_LABEL_ENC=TESTVFAT
ID_FS_LABEL_FATBOOT=TESTVFAT
ID_FS_LABEL_FATBOOT_ENC=TESTVFAT
ID_FS_TYPE=vfat
ID_FS_USAGE=filesystem
ID_FS_UUID=1423-AAE1

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.