add_timestamp: check sudo_json_* return values.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user