summaryrefslogtreecommitdiffstats
path: root/Header.c
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2024-01-20 11:51:20 +0100
committerBenBE <BenBE@geshi.org>2024-01-25 10:03:26 +0100
commit94c78224015bfb461a124b994a78c37f8c2a3e34 (patch)
tree56bec236e69248302b79a9548cf1aa4aaf323775 /Header.c
parent207db2e8f8874de7b8cfe43fa5ce7cb7c06b5097 (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.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/Header.c b/Header.c
index 4fee26b4..fa0279da 100644
--- a/Header.c
+++ b/Header.c
@@ -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)", &param); // CPUMeter
- if (!ok) {
+ if (sscanf(paren, "(%10u)", &param) != 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

© 2014-2024 Faster IT GmbH | imprint | privacy policy