]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
mdadm/super0: fix coverity issue CHECKED_RETURN and EVALUATION_ORDER
authorXiao Ni <xni@redhat.com>
Fri, 26 Jul 2024 07:14:12 +0000 (15:14 +0800)
committerMariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
Mon, 5 Aug 2024 09:13:30 +0000 (11:13 +0200)
Fix coverity problems in super0. It needs to check return value when
functions return value. And fix EVALUATION_ORDER problems in super0.c

Signed-off-by: Xiao Ni <xni@redhat.com>
Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
super0.c

index 9b4e187e83b8ec6672f55335a6da82e5b64462d9..c428e2a68dae6915ae1251c8f503ade1ce949684 100644 (file)
--- a/super0.c
+++ b/super0.c
@@ -83,6 +83,9 @@ static void examine_super0(struct supertype *st, char *homehost)
        int d;
        int delta_extra = 0;
        char *c;
+       unsigned long expected_csum = 0;
+
+       expected_csum = calc_sb0_csum(sb);
 
        printf("          Magic : %08x\n", sb->md_magic);
        printf("        Version : %d.%02d.%02d\n",
@@ -187,11 +190,11 @@ static void examine_super0(struct supertype *st, char *homehost)
        printf("Working Devices : %d\n", sb->working_disks);
        printf(" Failed Devices : %d\n", sb->failed_disks);
        printf("  Spare Devices : %d\n", sb->spare_disks);
-       if (calc_sb0_csum(sb) == sb->sb_csum)
+       if (expected_csum == sb->sb_csum)
                printf("       Checksum : %x - correct\n", sb->sb_csum);
        else
                printf("       Checksum : %x - expected %lx\n",
-                      sb->sb_csum, calc_sb0_csum(sb));
+                      sb->sb_csum, expected_csum);
        printf("         Events : %llu\n",
               ((unsigned long long)sb->events_hi << 32) + sb->events_lo);
        printf("\n");
@@ -1212,7 +1215,8 @@ static int locate_bitmap0(struct supertype *st, int fd, int node_num)
 
        offset += MD_SB_BYTES;
 
-       lseek64(fd, offset, 0);
+       if (lseek64(fd, offset, 0) < 0)
+               return -1;
        return 0;
 }