summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/krb5')
-rw-r--r--src/lib/krb5/asn.1/ChangeLog5
-rw-r--r--src/lib/krb5/asn.1/asn1_encode.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/krb5/asn.1/ChangeLog b/src/lib/krb5/asn.1/ChangeLog
index 4baf064f2..9d9d2bbc2 100644
--- a/src/lib/krb5/asn.1/ChangeLog
+++ b/src/lib/krb5/asn.1/ChangeLog
@@ -1,3 +1,8 @@
+2005-03-04 Ken Raeburn <raeburn@mit.edu>
+
+ * asn1_encode.c (asn1_encode_generaltime): If gmtime_r returns int
+ instead of pointer, do the appropriate error checking.
+
2004-12-28 Ezra Peisach <epeisach@mit.edu>
* asn1_decode.c (asn1_decode_generaltime): Fix memory leak when
diff --git a/src/lib/krb5/asn.1/asn1_encode.c b/src/lib/krb5/asn.1/asn1_encode.c
index 4f9e6949b..c5e3452b8 100644
--- a/src/lib/krb5/asn.1/asn1_encode.c
+++ b/src/lib/krb5/asn.1/asn1_encode.c
@@ -242,8 +242,13 @@ asn1_error_code asn1_encode_generaltime(asn1buf *buf, time_t val,
* and some bogus implementations might overrun on the sprintf.
*/
#ifdef HAVE_GMTIME_R
+# ifdef GMTIME_R_RETURNS_INT
+ if (gmtime_r(&gmt_time, &gtimebuf) != 0)
+ return ASN1_BAD_GMTIME;
+# else
if (gmtime_r(&gmt_time, &gtimebuf) == NULL)
return ASN1_BAD_GMTIME;
+# endif
#else
gtime = gmtime(&gmt_time);
if (gtime == NULL)