diff options
author | Christian Göttsche <cgzones@googlemail.com> | 2024-01-20 11:51:20 +0100 |
---|---|---|
committer | BenBE <BenBE@geshi.org> | 2024-01-25 10:03:26 +0100 |
commit | 94c78224015bfb461a124b994a78c37f8c2a3e34 (patch) | |
tree | 56bec236e69248302b79a9548cf1aa4aaf323775 /linux/LinuxMachine.c | |
parent | 207db2e8f8874de7b8cfe43fa5ce7cb7c06b5097 (diff) |
Explicitly check sscanf(3) and fscanf(3) return values
Compare the return value of sscanf(3) and fscanf(3) explicitly against
the expected number of parsed items and avoid implicit boolean
conversion. Such an implicit conversion would treat EOF (-1) the same
as at least one item parsed successfully.
Reported by CodeQL.
Diffstat (limited to 'linux/LinuxMachine.c')
-rw-r--r-- | linux/LinuxMachine.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/linux/LinuxMachine.c b/linux/LinuxMachine.c index 50d181e1..ff2b605a 100644 --- a/linux/LinuxMachine.c +++ b/linux/LinuxMachine.c @@ -302,8 +302,8 @@ static void LinuxMachine_scanZramInfo(LinuxMachine* this) { memory_t orig_data_size = 0; memory_t compr_data_size = 0; - if (!fscanf(disksize_file, "%llu\n", &size) || - !fscanf(mm_stat_file, " %llu %llu", &orig_data_size, &compr_data_size)) { + if (1 != fscanf(disksize_file, "%llu\n", &size) || + 2 != fscanf(mm_stat_file, " %llu %llu", &orig_data_size, &compr_data_size)) { fclose(disksize_file); fclose(mm_stat_file); break; @@ -342,10 +342,10 @@ static void LinuxMachine_scanZfsArcstats(LinuxMachine* this) { sscanf(buffer + strlen(label), " %*2u %32llu", variable); \ break; \ } else (void) 0 /* Require a ";" after the macro use. */ - #define tryReadFlag(label, variable, flag) \ - if (String_startsWith(buffer, label)) { \ - (flag) = sscanf(buffer + strlen(label), " %*2u %32llu", variable); \ - break; \ + #define tryReadFlag(label, variable, flag) \ + if (String_startsWith(buffer, label)) { \ + (flag) = (1 == sscanf(buffer + strlen(label), " %*2u %32llu", variable)); \ + break; \ } else (void) 0 /* Require a ";" after the macro use. */ switch (buffer[0]) { |