{
gss_buffer_desc value;
- unsigned char buf[4];
- OM_uint32 authtime;
+ unsigned char buf[SIZEOF_TIME_T];
+ time_t authtime;
HEIMDAL_MUTEX_lock(&ctx->ctx_id_mutex);
if (ctx->ticket == NULL) {
HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex);
+#if SIZEOF_TIME_T == 8
+ _gss_mg_encode_le_uint64(authtime, buf);
+#elif SIZEOF_TIME_T == 4
_gss_mg_encode_le_uint32(authtime, buf);
+#else
+#error set SIZEOF_TIME_T for your platform
+#endif
value.length = sizeof(buf);
value.value = buf;
{
gss_buffer_set_t data_set = GSS_C_NO_BUFFER_SET;
OM_uint32 maj_stat;
- uint32_t tmp;
if (context_handle == GSS_C_NO_CONTEXT) {
*minor_status = EINVAL;
return GSS_S_FAILURE;
}
- if (data_set->elements[0].length != 4) {
+ if (data_set->elements[0].length != SIZEOF_TIME_T) {
gss_release_buffer_set(minor_status, &data_set);
*minor_status = EINVAL;
return GSS_S_FAILURE;
}
- _gss_mg_decode_le_uint32(data_set->elements[0].value, &tmp);
- *authtime = (time_t)tmp;
+#if SIZEOF_TIME_T == 8
+ _gss_mg_decode_le_uint64(data_set->elements[0].value, (uint64_t *)authtime);
+#elif SIZEOF_TIME_T == 4
+ _gss_mg_decode_le_uint32(data_set->elements[0].value, (uint32_t *)authtime);
+#else
+#error set SIZEOF_TIME_T for your platform
+#endif
+
gss_release_buffer_set(minor_status, &data_set);
*minor_status = 0;