libblkid-tiny: avoid setting phantom UUIDs
authorJo-Philipp Wich <jo@mein.io>
Mon, 17 Oct 2016 09:28:31 +0000 (11:28 +0200)
committerJo-Philipp Wich <jo@mein.io>
Mon, 17 Oct 2016 09:45:34 +0000 (11:45 +0200)
When blkid_probe_set_uuid_as() is invoked with a non-NULL name parameter
then the name parameter denotes the kind of UUID (like "EXT_JOURNAL") not
the name of the file system.

Only copy the UUID value to the probe uuid member if the given name is
either NULL or "UUID".

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
libblkid-tiny/libblkid-tiny.c

index 9f260ebaef7b646dc3f9679951aa3eec66c41491..d718a1efa1aca863d70a1502eb836cfeafd9107e 100644 (file)
@@ -125,13 +125,12 @@ int blkid_probe_set_uuid_as(blkid_probe pr, unsigned char *uuid, const char *nam
 {
        short unsigned int*u = (short unsigned int*) uuid;
 
-       if (u[0])
+       if (u[0] && (!name || !strcmp(name, "UUID"))) {
                sprintf(pr->uuid,
                        "%04x%04x-%04x-%04x-%04x-%04x%04x%04x",
                        be16_to_cpu(u[0]), be16_to_cpu(u[1]), be16_to_cpu(u[2]), be16_to_cpu(u[3]),
                        be16_to_cpu(u[4]), be16_to_cpu(u[5]), be16_to_cpu(u[6]), be16_to_cpu(u[7]));
-       if (name)
-               strncpy(pr->name, name, sizeof(pr->name));
+       }
 
        return 0;
 }