summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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 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;