libblkid: ensure uninitialized variable is not used [clang]

Following condition can be true if minix file system is corrupt, and versio
number is found to be greater than 3.  It is fair to say described scenario
is unlikely.

libblkid/src/superblocks/minix.c:107:13: warning: variable 'zone_size' is
used uninitialized whenever
      'if' condition is false [-Wsometimes-uninitialized]
        } else if (version == 3) {
                   ^~~~~~~~~~~~
libblkid/src/superblocks/minix.c:121:6: note: uninitialized use occurs here
        if (zone_size != 0 || ninodes == 0 || ninodes == UINT32_MAX)
            ^~~~~~~~~

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2017-03-05 20:52:23 +00:00 committed by Karel Zak
parent c88f7aee8f
commit 57f1539592
1 changed files with 10 additions and 5 deletions

View File

@ -87,10 +87,9 @@ static int probe_minix(blkid_probe pr,
if (!data)
return errno ? -errno : 1;
version = get_minix_version(data, &swabme);
if (version < 1)
return 1;
if (version <= 2) {
switch (version) {
case 1:
case 2: {
struct minix_super_block *sb = (struct minix_super_block *) data;
uint16_t state = minix_swab16(swabme, sb->s_state);
@ -104,7 +103,9 @@ static int probe_minix(blkid_probe pr,
zmaps = minix_swab16(swabme, sb->s_zmap_blocks);
firstz = minix_swab16(swabme, sb->s_firstdatazone);
zone_size = sb->s_log_zone_size;
} else if (version == 3) {
break;
}
case 3: {
struct minix3_super_block *sb = (struct minix3_super_block *) data;
zones = minix_swab32(swabme, sb->s_zones);
@ -113,6 +114,10 @@ static int probe_minix(blkid_probe pr,
zmaps = minix_swab16(swabme, sb->s_zmap_blocks);
firstz = minix_swab16(swabme, sb->s_firstdatazone);
zone_size = sb->s_log_zone_size;
break;
}
default:
return 1;
}
/* sanity checks to be sure that the FS is really minix.