]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libblkid: (jmicron_raid) use checksum APIs
authorThomas Weißschuh <thomas@t-8ch.de>
Tue, 29 Aug 2023 10:31:35 +0000 (12:31 +0200)
committerKarel Zak <kzak@redhat.com>
Fri, 24 Nov 2023 09:33:45 +0000 (10:33 +0100)
Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
libblkid/src/superblocks/jmicron_raid.c

index cd84c9dcbcb331e9193d8c063c726a1e084044fd..65e05b624d7c464a27fe3e3f0c7b4b7889b658a3 100644 (file)
@@ -51,22 +51,22 @@ struct jm_metadata {
        uint8_t         filler2[0x20];
 } __attribute__ ((packed));
 
-static int jm_checksum(const struct jm_metadata *jm)
+static int jm_checksum(blkid_probe pr, const struct jm_metadata *jm)
 {
-        size_t count = sizeof(*jm) / sizeof(uint16_t);
-        uint16_t sum = 0;
-        unsigned char *ptr = (unsigned char *) jm;
+       size_t count = sizeof(*jm) / sizeof(uint16_t);
+       uint16_t sum = 0;
+       unsigned char *ptr = (unsigned char *) jm;
 
-        while (count--) {
-                uint16_t val;
+       while (count--) {
+               uint16_t val;
 
-                memcpy(&val, ptr, sizeof(uint16_t));
-                sum += le16_to_cpu(val);
+               memcpy(&val, ptr, sizeof(uint16_t));
+               sum += le16_to_cpu(val);
 
-                ptr += sizeof(uint16_t);
-        }
+               ptr += sizeof(uint16_t);
+       }
 
-        return sum == 0 || sum == 1;
+       return blkid_probe_verify_csum(pr, sum == 0 || sum == 1, 1);
 }
 
 static int probe_jmraid(blkid_probe pr,
@@ -91,7 +91,7 @@ static int probe_jmraid(blkid_probe pr,
        if (memcmp(jm->signature, JM_SIGNATURE, sizeof(JM_SIGNATURE) - 1) != 0)
                return 1;
 
-       if (!jm_checksum(jm))
+       if (!jm_checksum(pr, jm))
                return 1;
 
        if (jm->mode > 5)