summaryrefslogtreecommitdiff
path: root/nodogsplash/patches/0001-fix-invalid-pointer-when-clock-is-turned-back.patch
blob: 9ea55d0c9b1a6a8659f3ad100c1d1df490470cbe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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