diff --git a/libkmipclient/json.c b/libkmipclient/json.c index ed8e27c7..570c64f1 100644 --- a/libkmipclient/json.c +++ b/libkmipclient/json.c @@ -621,6 +621,10 @@ int kmip_encode_json(const struct kmip_node *node, json_object **obj, case KMIP_TYPE_DATE_TIME: tm = gmtime((time_t *)&node->date_time_value); + if (tm == NULL) { + rc = -EINVAL; + goto out; + } strftime(outstr, sizeof(outstr), KMIP_ISO8601_TIMESTAMP_UTC, tm); memb_obj = json_object_new_string(outstr); diff --git a/libkmipclient/xml.c b/libkmipclient/xml.c index 22766085..61a4e625 100644 --- a/libkmipclient/xml.c +++ b/libkmipclient/xml.c @@ -460,6 +460,10 @@ int kmip_encode_xml(const struct kmip_node *node, xmlNode **xml, bool debug) case KMIP_TYPE_DATE_TIME: tm = gmtime((time_t *)&node->date_time_value); + if (tm == NULL) { + rc = -EINVAL; + goto out; + } strftime(tmp_str, sizeof(tmp_str), KMIP_ISO8601_TIMESTAMP_UTC, tm); attr = xmlSetProp(ret_xml, (xmlChar *)KMIP_XML_VALUE,