Skip to content

Commit 9102c62

Browse files
yuwatapoettering
authored andcommitted
time-util: fix buffer-over-run
Fixes #23928.
1 parent ef8304d commit 9102c62

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

src/basic/time-util.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,7 @@ char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy) {
591591
t = b;
592592
}
593593

594-
n = MIN((size_t) k, l);
594+
n = MIN((size_t) k, l-1);
595595

596596
l -= n;
597597
p += n;

src/test/test-time-util.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,11 @@ TEST(format_timespan) {
238238
test_format_timespan_accuracy(1);
239239
test_format_timespan_accuracy(USEC_PER_MSEC);
240240
test_format_timespan_accuracy(USEC_PER_SEC);
241+
242+
/* See issue #23928. */
243+
_cleanup_free_ char *buf;
244+
assert_se(buf = new(char, 5));
245+
assert_se(buf == format_timespan(buf, 5, 100005, 1000));
241246
}
242247

243248
TEST(verify_timezone) {

0 commit comments

Comments
 (0)