routing/nodogsplash/patches/0001-fix-invalid-pointer-when-clock-is-turned-back.patch
Moritz Warning 1cca73b59f
nodogsplash: fix invalid pointer bug when clock is turned back (#456)
Signed-off-by: Moritz Warning <moritzwarning@web.de>
2019-03-14 18:23:32 +01:00

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