51 lines
1.4 KiB
Diff
51 lines
1.4 KiB
Diff
From af548c1f885e46309baa6aa175a3822fd16afb2a Mon Sep 17 00:00:00 2001
|
|
From: Moritz Warning <moritzwarning@web.de>
|
|
Date: Thu, 14 Mar 2019 17:19:40 +0100
|
|
Subject: [PATCH] fix invalid pointer when clock is turned back
|
|
|
|
---
|
|
src/util.c | 12 ++++++------
|
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/src/util.c b/src/util.c
|
|
index 621062d..77228bf 100644
|
|
--- a/src/util.c
|
|
+++ b/src/util.c
|
|
@@ -362,14 +362,14 @@ format_duration(time_t from, time_t to, char buf[64])
|
|
{
|
|
int days, hours, minutes, seconds;
|
|
long long int secs;
|
|
+ const char *neg = "";
|
|
|
|
if (from <= to) {
|
|
secs = to - from;
|
|
} else {
|
|
secs = from - to;
|
|
// Prepend minus sign
|
|
- buf[0] = '-';
|
|
- buf += 1;
|
|
+ neg = "-";
|
|
}
|
|
|
|
days = secs / (24 * 60 * 60);
|
|
@@ -381,13 +381,13 @@ format_duration(time_t from, time_t to, char buf[64])
|
|
seconds = secs;
|
|
|
|
if (days > 0) {
|
|
- sprintf(buf, "%dd %dh %dm %ds", days, hours, minutes, seconds);
|
|
+ snprintf(buf, 64, "%s%dd %dh %dm %ds", neg, days, hours, minutes, seconds);
|
|
} else if (hours > 0) {
|
|
- sprintf(buf, "%dh %dm %ds", hours, minutes, seconds);
|
|
+ snprintf(buf, 64, "%s%dh %dm %ds", neg, hours, minutes, seconds);
|
|
} else if (minutes > 0) {
|
|
- sprintf(buf, "%dm %ds", minutes, seconds);
|
|
+ snprintf(buf, 64, "%s%dm %ds", neg, minutes, seconds);
|
|
} else {
|
|
- sprintf(buf, "%ds", seconds);
|
|
+ snprintf(buf, 64, "%s%ds", neg, seconds);
|
|
}
|
|
|
|
return buf;
|
|
--
|
|
2.20.1
|
|
|