summaryrefslogtreecommitdiff
path: root/patches/strptime_susv3.patch
blob: fc14b91d5da23cebe5d300dfeff4ff5cfb32a505 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
diff --git a/src/libknot/dnssec/key.c b/src/libknot/dnssec/key.c
index 7dc0540..3e351bb 100644
--- a/src/libknot/dnssec/key.c
+++ b/src/libknot/dnssec/key.c
@@ -260,7 +260,15 @@ static int key_param_time(const void *save_to, char *value)
 
 	struct tm parsed = { 0 };
 
-	if (!strptime(value, "%Y%m%d%H%M%S", &parsed)) {
+	if (strlen(value) != 14) {
+		return KNOT_EINVAL;
+	}
+
+	char *v = value;
+	char buf[32] = "";
+	int ret = sprintf(buf, "%.4s %.2s %.2s %.2s %.2s %.2s",
+	                  v, v + 4, v + 6, v + 8, v + 10, v + 12);
+	if (ret != 19 || !strptime(buf, "%Y %m %d %H %M %S", &parsed)) {
 		return KNOT_EINVAL;
 	}