diff options
Diffstat (limited to 'src')
| -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 df4c1e5d8..d0a9f230a 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 c45321ee6..76a79a86b 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; |
