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 /Header.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 'Header.c')
-rw-r--r-- | Header.c | 5 |
1 files changed, 2 insertions, 3 deletions
@@ -86,10 +86,9 @@ static void Header_addMeterByName(Header* this, const char* name, MeterModeId mo unsigned int param = 0; size_t nameLen; if (paren) { - int ok = sscanf(paren, "(%10u)", ¶m); // CPUMeter - if (!ok) { + if (sscanf(paren, "(%10u)", ¶m) != 1) { // not CPUMeter char dynamic[32] = {0}; - if (sscanf(paren, "(%30s)", dynamic)) { // DynamicMeter + if (sscanf(paren, "(%30s)", dynamic) == 1) { // DynamicMeter char* end; if ((end = strrchr(dynamic, ')')) == NULL) return; // htoprc parse failure |