add_timestamp: check sudo_json_* return values.

This commit is contained in:
Todd C. Miller
2023-11-09 17:12:55 -07:00
parent a2998a6701
commit 1a68935ae3

View File

@@ -348,22 +348,26 @@ add_timestamp(struct json_container *jsonc, struct timespec *ts)
if (gmtime_r(&secs, &gmt) == NULL)
debug_return_bool(false);
sudo_json_open_object(jsonc, "timestamp");
if (!sudo_json_open_object(jsonc, "timestamp"))
debug_return_bool(false);
json_value.type = JSON_NUMBER;
json_value.u.number = ts->tv_sec;
sudo_json_add_value(jsonc, "seconds", &json_value);
if (!sudo_json_add_value(jsonc, "seconds", &json_value))
debug_return_bool(false);
json_value.type = JSON_NUMBER;
json_value.u.number = ts->tv_nsec;
sudo_json_add_value(jsonc, "nanoseconds", &json_value);
if (!sudo_json_add_value(jsonc, "nanoseconds", &json_value))
debug_return_bool(false);
timebuf[sizeof(timebuf) - 1] = '\0';
len = strftime(timebuf, sizeof(timebuf), "%Y%m%d%H%M%SZ", &gmt);
if (len != 0 && timebuf[sizeof(timebuf) - 1] == '\0'){
json_value.type = JSON_STRING;
json_value.u.string = timebuf;
sudo_json_add_value(jsonc, "iso8601", &json_value);
if (!sudo_json_add_value(jsonc, "iso8601", &json_value))
debug_return_bool(false);
}
timebuf[sizeof(timebuf) - 1] = '\0';
@@ -371,10 +375,12 @@ add_timestamp(struct json_container *jsonc, struct timespec *ts)
if (len != 0 && timebuf[sizeof(timebuf) - 1] == '\0'){
json_value.type = JSON_STRING;
json_value.u.string = timebuf;
sudo_json_add_value(jsonc, "localtime", &json_value);
if (!sudo_json_add_value(jsonc, "localtime", &json_value))
debug_return_bool(false);
}
sudo_json_close_object(jsonc);
if (!sudo_json_close_object(jsonc))
debug_return_bool(false);
debug_return_bool(true);
}