This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.17-551-gff491d1
- From: siddhesh at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 23 Apr 2013 10:02:12 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.17-551-gff491d1
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via ff491d14a2c7329e4b61cb9d937203d4139954f9 (commit)
from 7ed3f4e859896fbb8d384a4f101e40df47eb0ef0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=ff491d14a2c7329e4b61cb9d937203d4139954f9
commit ff491d14a2c7329e4b61cb9d937203d4139954f9
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
Date: Tue Apr 23 15:32:42 2013 +0530
Consistently use ISSPACE to check for whitespace
Resolves #14888.
This only really manifests itself when there are no spaces between
format specifiers, which is not allowed by POSIX, but is allowed by
the glibc implementation.
diff --git a/ChangeLog b/ChangeLog
index 9a54ec7..164026b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2013-04-23 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ [BZ #14888]
+ * time/Makefile (tests): Add tst-strptime-whitespace.
+ * time/strptime_l.c (get_number): Use ISSPACE.
+ (__strptime_internal): Likewise.
+ * time/tst-strptime-whitespace.c: New test case.
+
2013-04-23 Andreas Schwab <schwab@linux-m68k.org>
* nss/nss_files/files-init.c (TF): Don't initialize flexible array
diff --git a/NEWS b/NEWS
index e2d71be..a1aeb42 100644
--- a/NEWS
+++ b/NEWS
@@ -11,10 +11,10 @@ Version 2.18
10060, 10062, 10357, 11120, 11561, 12723, 13550, 13889, 13951, 13988,
14142, 14176, 14200, 14293, 14317, 14327, 14478, 14496, 14686, 14812,
- 14920, 14964, 14981, 14982, 14985, 14994, 14996, 15003, 15006, 15020,
- 15023, 15036, 15054, 15055, 15062, 15078, 15160, 15214, 15232, 15234,
- 15283, 15285, 15287, 15304, 15305, 15307, 15309, 15327, 15330, 15335,
- 15336, 15337, 15342, 15346, 15361.
+ 14888, 14920, 14964, 14981, 14982, 14985, 14994, 14996, 15003, 15006,
+ 15020, 15023, 15036, 15054, 15055, 15062, 15078, 15160, 15214, 15232,
+ 15234, 15283, 15285, 15287, 15304, 15305, 15307, 15309, 15327, 15330,
+ 15335, 15336, 15337, 15342, 15346, 15361.
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
#15078).
diff --git a/time/Makefile b/time/Makefile
index a230268..7f4a7fc 100644
--- a/time/Makefile
+++ b/time/Makefile
@@ -35,7 +35,7 @@ aux := era alt_digit lc-time-cleanup
tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \
tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \
tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \
- tst-strptime3 bug-getdate1
+ tst-strptime3 bug-getdate1 tst-strptime-whitespace
include ../Rules
diff --git a/time/strptime_l.c b/time/strptime_l.c
index 89daffa..1f2e8b6 100644
--- a/time/strptime_l.c
+++ b/time/strptime_l.c
@@ -72,7 +72,7 @@ localtime_r (t, tp)
do { \
int __n = n; \
val = 0; \
- while (*rp == ' ') \
+ while (ISSPACE (*rp)) \
++rp; \
if (*rp < '0' || *rp > '9') \
return NULL; \
@@ -752,7 +752,7 @@ __strptime_internal (rp, fmt, tmp, statep LOCALE_PARAM)
also specified. */
{
val = 0;
- while (*rp == ' ')
+ while (ISSPACE (*rp))
++rp;
if (*rp != '+' && *rp != '-')
return NULL;
diff --git a/time/tst-strptime-whitespace.c b/time/tst-strptime-whitespace.c
new file mode 100644
index 0000000..d2ceca3
--- /dev/null
+++ b/time/tst-strptime-whitespace.c
@@ -0,0 +1,43 @@
+/* Verify that strptime accepts arbitrary whitespace between tokens.
+
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define _XOPEN_SOURCE
+#include <time.h>
+#include <stdio.h>
+#include <string.h>
+
+int
+do_test (void)
+{
+ struct tm t;
+ const char *in = "Tuesday \t 22 \t July\t1942";
+
+ char *r = strptime (in, "%A%d %b%Y", &t);
+
+ if (r == NULL || r != in + strlen (in))
+ {
+ printf ("strptime failed\n");
+ return 1;
+ }
+
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 8 +++++
NEWS | 8 +++---
time/Makefile | 2 +-
time/strptime_l.c | 4 +-
.../tst-strptime-whitespace.c | 29 +++++++-------------
5 files changed, 25 insertions(+), 26 deletions(-)
copy posix/bug-regex35.c => time/tst-strptime-whitespace.c (68%)
hooks/post-receive
--
GNU C Library master sources