libblkid-tiny: avoid setting phantom UUIDs
[project/fstools.git] / libblkid-tiny / libblkid-tiny.c
index f66f3a1dc16ef3d8d75e8b4092494b0510fb5fb2..d718a1efa1aca863d70a1502eb836cfeafd9107e 100644 (file)
@@ -1,6 +1,7 @@
 #include <stdio.h>
 #include <sys/utsname.h>
 
+#include "libblkid-tiny.h"
 #include "superblocks.h"
 #include "linux_version.h"
 
@@ -124,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;
 }
@@ -168,6 +168,7 @@ static const struct blkid_idinfo *idinfos[] =
        &hfsplus_idinfo,
        &hfs_idinfo,
        &btrfs_idinfo,
+       &f2fs_idinfo,
 };
 
 int probe_block(char *block, struct blkid_struct_probe *pr)