aboutsummaryrefslogtreecommitdiffstats
path: root/main/busybox/0001-libbb-fix-time-parsing-of-CC-YY-MMDDhhmm-.SS.patch
blob: 9bd5075454a86945a59e1a16689ccaf7ff61706b (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
From 1a3d9fb9074dc746326e6fa98c3eb499f6a6e048 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Thu, 19 May 2016 16:17:32 +0200
Subject: [PATCH] libbb: fix time parsing of [[CC]YY]MMDDhhmm[.SS]

If SS is not given a value, it is assumed to be zero.
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/touch.html

closes 8951

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
---
 libbb/time.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libbb/time.c b/libbb/time.c
index aa19a47..44dd4aa 100644
--- a/libbb/time.c
+++ b/libbb/time.c
@@ -159,6 +159,8 @@ void FAST_FUNC parse_datestr(const char *date_str, struct tm *ptm)
 					&ptm->tm_hour,
 					&ptm->tm_min,
 					&end) >= 5) {
+			/* assume zero if [.SS] is not given */
+			ptm->tm_sec = 0;
 			/* Adjust month from 1-12 to 0-11 */
 			ptm->tm_mon -= 1;
 			if ((int)cur_year >= 50) { /* >= 1950 */
@@ -181,6 +183,8 @@ void FAST_FUNC parse_datestr(const char *date_str, struct tm *ptm)
 					&ptm->tm_hour,
 					&ptm->tm_min,
 					&end) >= 5) {
+			/* assume zero if [.SS] is not given */
+			ptm->tm_sec = 0;
 			ptm->tm_year -= 1900; /* Adjust years */
 			ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */
 		} else {
-- 
2.8.2