diff options
author | Ezra Peisach <epeisach@mit.edu> | 1996-06-18 00:26:53 +0000 |
---|---|---|
committer | Ezra Peisach <epeisach@mit.edu> | 1996-06-18 00:26:53 +0000 |
commit | 2d172054d138562b8e8705eddf32e875aceb52f2 (patch) | |
tree | 116f06f79c120d04d6521b2bd53edac23a4e2028 | |
parent | c42751179aad64fcb6125e3b26e55e7f845aeffc (diff) | |
download | krb5-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/ChangeLog | 6 | ||||
-rw-r--r-- | src/lib/krb5/krb/str_conv.c | 8 |
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; |