]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libblkid: nvidia_raid: verify superblock size
authorThomas Weißschuh <thomas@t-8ch.de>
Thu, 2 Mar 2023 15:27:58 +0000 (15:27 +0000)
committerThomas Weißschuh <thomas@t-8ch.de>
Thu, 2 Mar 2023 20:44:01 +0000 (20:44 +0000)
Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
libblkid/src/superblocks/nvidia_raid.c

index 5db8ec260e8c590ec3f0b2df5e1938f9b9471e55..35c663c8d0e41caf86be67992e422dd927f6b722 100644 (file)
@@ -24,6 +24,8 @@ struct nv_metadata {
 } __attribute__((packed));
 
 #define NVIDIA_SIGNATURE               "NVIDIA"
+#define NVIDIA_SUPERBLOCK_SIZE         120
+
 
 static int probe_nvraid(blkid_probe pr,
                const struct blkid_idmag *mag __attribute__((__unused__)))
@@ -46,6 +48,8 @@ static int probe_nvraid(blkid_probe pr,
 
        if (memcmp(nv->vendor, NVIDIA_SIGNATURE, sizeof(NVIDIA_SIGNATURE)-1) != 0)
                return 1;
+       if (le32_to_cpu(nv->size) * 4 != NVIDIA_SUPERBLOCK_SIZE)
+               return 1;
        if (blkid_probe_sprintf_version(pr, "%u", le16_to_cpu(nv->version)) != 0)
                return 1;
        if (blkid_probe_set_magic(pr, off, sizeof(nv->vendor),