time-util: fix buffer-over-run

Fixes #23928.
This commit is contained in:
Yu Watanabe 2022-07-07 18:27:02 +09:00 committed by Lennart Poettering
parent ef8304de53
commit 9102c625a6
2 changed files with 6 additions and 1 deletions

View file

@ -591,7 +591,7 @@ char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy) {
t = b;
}
n = MIN((size_t) k, l);
n = MIN((size_t) k, l-1);
l -= n;
p += n;

View file

@ -238,6 +238,11 @@ TEST(format_timespan) {
test_format_timespan_accuracy(1);
test_format_timespan_accuracy(USEC_PER_MSEC);
test_format_timespan_accuracy(USEC_PER_SEC);
/* See issue #23928. */
_cleanup_free_ char *buf;
assert_se(buf = new(char, 5));
assert_se(buf == format_timespan(buf, 5, 100005, 1000));
}
TEST(verify_timezone) {