[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r22829 - in /fsf/trunk/libc: ChangeLog NEWS time/getdate.c time/tst-getdate.c
- To: commits@xxxxxxxxxx
- Subject: [Commits] r22829 - in /fsf/trunk/libc: ChangeLog NEWS time/getdate.c time/tst-getdate.c
- From: eglibc@xxxxxxxxxx
- Date: Thu, 11 Apr 2013 00:01:54 -0000
Author: eglibc
Date: Thu Apr 11 00:01:50 2013
New Revision: 22829
Log:
Import glibc-mainline for 2013-04-11
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/NEWS
fsf/trunk/libc/time/getdate.c
fsf/trunk/libc/time/tst-getdate.c
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu Apr 11 00:01:50 2013
@@ -1,3 +1,13 @@
+2013-04-10 Siddhesh Poyarekar <siddhesh@xxxxxxxxxx>
+ Roland McGrath <roland@xxxxxxxxxxxxx>
+ Ondrej Bilka <neleai@xxxxxxxxx>
+
+ [BZ #15346]
+ * time/getdate.c: Include ctype.h and alloca.h.
+ (__getdate_r): Trim leading and trailing spaces of input.
+ * time/tst-getdate.c (tests): Add tests with leading and
+ trailing spaces.
+
2013-04-08 Roland McGrath <roland@xxxxxxxxxxxxx>
[BZ #14280]
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Thu Apr 11 00:01:50 2013
@@ -14,7 +14,7 @@
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.
+ 15342, 15346.
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
#15078).
Modified: fsf/trunk/libc/time/getdate.c
==============================================================================
--- fsf/trunk/libc/time/getdate.c (original)
+++ fsf/trunk/libc/time/getdate.c Thu Apr 11 00:01:50 2013
@@ -25,6 +25,8 @@
#include <time.h>
#include <unistd.h>
#include <sys/stat.h>
+#include <ctype.h>
+#include <alloca.h>
#define TM_YEAR_BASE 1900
@@ -135,6 +137,44 @@
/* No threads reading this stream. */
__fsetlocking (fp, FSETLOCKING_BYCALLER);
+ /* Skip leading whitespace. */
+ while (isspace (*string))
+ string++;
+
+ size_t inlen, oldlen;
+
+ oldlen = inlen = strlen (string);
+
+ /* Skip trailing whitespace. */
+ while (inlen > 0 && isspace (string[inlen - 1]))
+ inlen--;
+
+ char *instr = NULL;
+
+ if (inlen < oldlen)
+ {
+ bool using_malloc = false;
+
+ if (__libc_use_alloca (inlen + 1))
+ instr = alloca (inlen + 1);
+ else
+ {
+ instr = malloc (inlen + 1);
+ if (instr == NULL)
+ {
+ fclose (fp);
+ return 6;
+ }
+ using_malloc = true;
+ }
+ memcpy (instr, string, inlen);
+ instr[inlen] = '\0';
+ string = instr;
+
+ if (!using_malloc)
+ instr = NULL;
+ }
+
line = NULL;
len = 0;
do
@@ -159,6 +199,8 @@
}
while (!feof_unlocked (fp));
+ free (instr);
+
/* Free the buffer. */
free (line);
Modified: fsf/trunk/libc/time/tst-getdate.c
==============================================================================
--- fsf/trunk/libc/time/tst-getdate.c (original)
+++ fsf/trunk/libc/time/tst-getdate.c Thu Apr 11 00:01:50 2013
@@ -31,6 +31,10 @@
} tests [] =
{
{"21:01:10 1999-1-31", "Universal", 0, {10, 1, 21, 31, 0, 99, 0, 0, 0}},
+ {"21:01:10 1999-1-31", "Universal", 0, {10, 1, 21, 31, 0, 99, 0, 0, 0}},
+ {" 21:01:10 1999-1-31", "Universal", 0, {10, 1, 21, 31, 0, 99, 0, 0, 0}},
+ {"21:01:10 1999-1-31 ", "Universal", 0, {10, 1, 21, 31, 0, 99, 0, 0, 0}},
+ {" 21:01:10 1999-1-31 ", "Universal", 0, {10, 1, 21, 31, 0, 99, 0, 0, 0}},
{"21:01:10 1999-2-28", "Universal", 0, {10, 1, 21, 28, 1, 99, 0, 0, 0}},
{"16:30:46 2000-2-29", "Universal", 0, {46, 30,16, 29, 1, 100, 0, 0, 0}},
{"01-08-2000 05:06:07", "Europe/Berlin", 0, {7, 6, 5, 1, 7, 100, 0, 0, 0}}
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits