diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2017-07-27 16:07:50 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2017-07-27 16:07:50 -0300 |
commit | 09e241fb1271021e3615512debd3136891547562 (patch) | |
tree | 8245b6084607a34185cfa7d3d45f5228937020f1 /UptimeMeter.c | |
parent | 3975e9ce5cba0e3972b2ddab28c198e000441501 (diff) |
Security review: check results of snprintf.
Calls marked with xSnprintf shouldn't fail.
Abort program cleanly if any of them does.
Diffstat (limited to 'UptimeMeter.c')
-rw-r--r-- | UptimeMeter.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/UptimeMeter.c b/UptimeMeter.c index 2fe603ae..61f60905 100644 --- a/UptimeMeter.c +++ b/UptimeMeter.c @@ -20,7 +20,7 @@ int UptimeMeter_attributes[] = { static void UptimeMeter_updateValues(Meter* this, char* buffer, int len) { int totalseconds = Platform_getUptime(); if (totalseconds == -1) { - snprintf(buffer, len, "(unknown)"); + xSnprintf(buffer, len, "(unknown)"); return; } int seconds = totalseconds % 60; @@ -31,17 +31,17 @@ static void UptimeMeter_updateValues(Meter* this, char* buffer, int len) { if (days > this->total) { this->total = days; } - char daysbuf[15]; + char daysbuf[32]; if (days > 100) { - snprintf(daysbuf, sizeof(daysbuf), "%d days(!), ", days); + xSnprintf(daysbuf, sizeof(daysbuf), "%d days(!), ", days); } else if (days > 1) { - snprintf(daysbuf, sizeof(daysbuf), "%d days, ", days); + xSnprintf(daysbuf, sizeof(daysbuf), "%d days, ", days); } else if (days == 1) { - snprintf(daysbuf, sizeof(daysbuf), "1 day, "); + xSnprintf(daysbuf, sizeof(daysbuf), "1 day, "); } else { daysbuf[0] = '\0'; } - snprintf(buffer, len, "%s%02d:%02d:%02d", daysbuf, hours, minutes, seconds); + xSnprintf(buffer, len, "%s%02d:%02d:%02d", daysbuf, hours, minutes, seconds); } MeterClass UptimeMeter_class = { |