summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEzra Peisach <epeisach@mit.edu>1996-06-18 00:26:53 +0000
committerEzra Peisach <epeisach@mit.edu>1996-06-18 00:26:53 +0000
commit2d172054d138562b8e8705eddf32e875aceb52f2 (patch)
tree116f06f79c120d04d6521b2bd53edac23a4e2028
parentc42751179aad64fcb6125e3b26e55e7f845aeffc (diff)
downloadkrb5-2d172054d138562b8e8705eddf32e875aceb52f2.tar.gz
krb5-2d172054d138562b8e8705eddf32e875aceb52f2.tar.xz
krb5-2d172054d138562b8e8705eddf32e875aceb52f2.zip
* str_conv.c (krb5_string_to_timestamp): Ensure that all fields of
the timestamp are filled in if strptime does not fill in unspecified fields. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@8376 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/lib/krb5/krb/ChangeLog6
-rw-r--r--src/lib/krb5/krb/str_conv.c8
2 files changed, 13 insertions, 1 deletions
diff --git a/src/lib/krb5/krb/ChangeLog b/src/lib/krb5/krb/ChangeLog
index df4c1e5d80..d0a9f230af 100644
--- a/src/lib/krb5/krb/ChangeLog
+++ b/src/lib/krb5/krb/ChangeLog
@@ -1,3 +1,9 @@
+Mon Jun 17 20:23:48 1996 Ezra Peisach <epeisach@kangaroo.mit.edu>
+
+ * str_conv.c (krb5_string_to_timestamp): Ensure that all fields of
+ the timestamp are filled in if strptime does not fill in
+ unspecified fields.
+
Wed Jun 12 01:10:09 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
* sendauth.c (krb5_sendauth): If ECCONABORTED is not defined, try
diff --git a/src/lib/krb5/krb/str_conv.c b/src/lib/krb5/krb/str_conv.c
index c45321ee6a..76a79a86b2 100644
--- a/src/lib/krb5/krb/str_conv.c
+++ b/src/lib/krb5/krb/str_conv.c
@@ -432,11 +432,17 @@ krb5_string_to_timestamp(string, timestampp)
int i;
int found;
struct tm timebuf;
+ time_t now;
char *s;
found = 0;
- memset(&timebuf, 0, sizeof(timebuf));
+ now = time((time_t *) NULL);
for (i=0; i<atime_format_table_nents; i++) {
+ /* We reset every time throughout the loop as the manual page
+ * indicated that no guarantees are made as to preserving timebuf
+ * when parsing fails
+ */
+ memcpy(&timebuf, localtime(&now), sizeof(timebuf));
if ((s = strptime(string, atime_format_table[i], &timebuf))
&& (s != string)) {
found = 1;