From 9f7073df932cfb5037df05c6a3bb0b6cd3ee076c Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 24 Jul 2013 20:11:19 +0200 Subject: [PATCH] block: strip trailing spaces from vfat labels Strip trailing spaces from vfat labels to mimic the behaviour of "blkid" --- libblkid-tiny/vfat.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libblkid-tiny/vfat.c b/libblkid-tiny/vfat.c index a24e6c3..dd53d68 100644 --- a/libblkid-tiny/vfat.c +++ b/libblkid-tiny/vfat.c @@ -273,6 +273,16 @@ static int fat_valid_superblock(const struct blkid_idmag *mag, static struct vfat_super_block vs; static struct msdos_super_block ms; +static int set_label(blkid_probe pr, unsigned char *vol_label) +{ + unsigned char *c; + + for (c = vol_label + 10; c > vol_label && *c == ' '; c--) + *c = 0; + + return blkid_probe_set_label(pr, vol_label, 11); +} + /* FAT label extraction from the root directory taken from Kay * Sievers's volume_id library */ static int probe_vfat(blkid_probe pr, const struct blkid_idmag *mag) @@ -396,7 +406,7 @@ static int probe_vfat(blkid_probe pr, const struct blkid_idmag *mag) } if (vol_label && memcmp(vol_label, no_name, 11)) - blkid_probe_set_label(pr, (unsigned char *) vol_label, 11); + set_label(pr, (unsigned char *) vol_label); /* We can't just print them as %04X, because they are unaligned */ if (vol_serno) -- 2.25.1