Module Name: src
Committed By: snj
Date: Mon Sep 4 06:30:38 UTC 2017
Modified Files:
src/usr.sbin/syslogd [netbsd-7]: syslogd.c
Log Message:
Pull up following revision(s) (requested by ginsbach in ticket #1496):
usr.sbin/syslogd/syslogd.c: revision 1.123
PR/51234: Onno van der Linden: syslogd sometimes incorrectly handles iso to
bsd time conversion
To generate a diff of this commit:
cvs rdiff -u -r1.119.4.1 -r1.119.4.2 src/usr.sbin/syslogd/syslogd.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/syslogd/syslogd.c
diff -u src/usr.sbin/syslogd/syslogd.c:1.119.4.1 src/usr.sbin/syslogd/syslogd.c:1.119.4.2
--- src/usr.sbin/syslogd/syslogd.c:1.119.4.1 Wed May 13 19:19:19 2015
+++ src/usr.sbin/syslogd/syslogd.c Mon Sep 4 06:30:38 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: syslogd.c,v 1.119.4.1 2015/05/13 19:19:19 snj Exp $ */
+/* $NetBSD: syslogd.c,v 1.119.4.2 2017/09/04 06:30:38 snj Exp $ */
/*
* Copyright (c) 1983, 1988, 1993, 1994
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1983, 19
#if 0
static char sccsid[] = "@(#)syslogd.c 8.3 (Berkeley) 4/4/94";
#else
-__RCSID("$NetBSD: syslogd.c,v 1.119.4.1 2015/05/13 19:19:19 snj Exp $");
+__RCSID("$NetBSD: syslogd.c,v 1.119.4.2 2017/09/04 06:30:38 snj Exp $");
#endif
#endif /* not lint */
@@ -1746,27 +1746,28 @@ check_timestamp(unsigned char *from_buf,
struct tm parsed;
time_t timeval;
char tsbuf[MAX_TIMESTAMPLEN];
- int i = 0;
+ int i = 0, j;
DPRINTF(D_CALL, "check_timestamp(): convert ISO->BSD\n");
for(i = 0; i < MAX_TIMESTAMPLEN && from_buf[i] != '\0'
&& from_buf[i] != '.' && from_buf[i] != ' '; i++)
tsbuf[i] = from_buf[i]; /* copy date & time */
+ j = i;
for(; i < MAX_TIMESTAMPLEN && from_buf[i] != '\0'
&& from_buf[i] != '+' && from_buf[i] != '-'
&& from_buf[i] != 'Z' && from_buf[i] != ' '; i++)
; /* skip fraction digits */
for(; i < MAX_TIMESTAMPLEN && from_buf[i] != '\0'
- && from_buf[i] != ':' && from_buf[i] != ' ' ; i++)
- tsbuf[i] = from_buf[i]; /* copy TZ */
+ && from_buf[i] != ':' && from_buf[i] != ' ' ; i++, j++)
+ tsbuf[j] = from_buf[i]; /* copy TZ */
if (from_buf[i] == ':') i++; /* skip colon */
for(; i < MAX_TIMESTAMPLEN && from_buf[i] != '\0'
- && from_buf[i] != ' ' ; i++)
- tsbuf[i] = from_buf[i]; /* copy TZ */
+ && from_buf[i] != ' ' ; i++, j++)
+ tsbuf[j] = from_buf[i]; /* copy TZ */
(void)memset(&parsed, 0, sizeof(parsed));
- parsed.tm_isdst = -1;
(void)strptime(tsbuf, "%FT%T%z", &parsed);
+ parsed.tm_isdst = -1;
timeval = mktime(&parsed);
*to_buf = strndup(make_timestamp(&timeval, false),