Module Name:    src
Committed By:   ginsbach
Date:           Fri Oct 30 03:18:10 UTC 2015

Modified Files:
        src/lib/libc/time: strptime.c
        src/tests/lib/libc/time: t_strptime.c

Log Message:
ISO 8601 and RFC 3339 specify that an offset can be up to 23:59 and
not 12:00 east/west.  Just proves that one shouldn't use other
implementations as a canonical reference.  Thanks to all who pointed
this out.


To generate a diff of this commit:
cvs rdiff -u -r1.52 -r1.53 src/lib/libc/time/strptime.c
cvs rdiff -u -r1.8 -r1.9 src/tests/lib/libc/time/t_strptime.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/time/strptime.c
diff -u src/lib/libc/time/strptime.c:1.52 src/lib/libc/time/strptime.c:1.53
--- src/lib/libc/time/strptime.c:1.52	Fri Oct 30 01:49:36 2015
+++ src/lib/libc/time/strptime.c	Fri Oct 30 03:18:10 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: strptime.c,v 1.52 2015/10/30 01:49:36 ginsbach Exp $	*/
+/*	$NetBSD: strptime.c,v 1.53 2015/10/30 03:18:10 ginsbach Exp $	*/
 
 /*-
  * Copyright (c) 1997, 1998, 2005, 2008 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: strptime.c,v 1.52 2015/10/30 01:49:36 ginsbach Exp $");
+__RCSID("$NetBSD: strptime.c,v 1.53 2015/10/30 03:18:10 ginsbach Exp $");
 #endif
 
 #include "namespace.h"
@@ -626,7 +626,7 @@ loadzone:
 			default:
 				return NULL;
 			}
-			if (offs > (12 * SECSPERHOUR))
+			if (offs >= (HOURSPERDAY * SECSPERHOUR))
 				return NULL;
 			if (neg)
 				offs = -offs;

Index: src/tests/lib/libc/time/t_strptime.c
diff -u src/tests/lib/libc/time/t_strptime.c:1.8 src/tests/lib/libc/time/t_strptime.c:1.9
--- src/tests/lib/libc/time/t_strptime.c:1.8	Fri Oct 30 01:51:15 2015
+++ src/tests/lib/libc/time/t_strptime.c	Fri Oct 30 03:18:10 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: t_strptime.c,v 1.8 2015/10/30 01:51:15 ginsbach Exp $ */
+/* $NetBSD: t_strptime.c,v 1.9 2015/10/30 03:18:10 ginsbach Exp $ */
 
 /*-
  * Copyright (c) 1998, 2008 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
 #include <sys/cdefs.h>
 __COPYRIGHT("@(#) Copyright (c) 2008\
  The NetBSD Foundation, inc. All rights reserved.");
-__RCSID("$NetBSD: t_strptime.c,v 1.8 2015/10/30 01:51:15 ginsbach Exp $");
+__RCSID("$NetBSD: t_strptime.c,v 1.9 2015/10/30 03:18:10 ginsbach Exp $");
 
 #include <time.h>
 
@@ -326,6 +326,10 @@ static struct {
 	{ "-0403",			-14580 },
 	{ "+04:03",			14580 },
 	{ "-04:03",			-14580 },
+	{ "+14:00",			50400 },
+	{ "-14:00",			-50400 },
+	{ "+23:59",			86340 },
+	{ "-23:59",			-86340 },
 
 	{ "1",				-1 },
 	{ "03",				-1 },
@@ -335,8 +339,8 @@ static struct {
 	{ "+12345",			-1 },
 	{ "+12:345",			-1 },
 	{ "+123:45",			-1 },
-	{ "+1430",			-1 },
-	{ "-1430",			-1 },
+	{ "+2400",			-1 },
+	{ "-2400",			-1 },
 	{ "+1060",			-1 },
 	{ "-1060",			-1 },
 

Reply via email to