From: Ondrej Zajicek (work) Date: Mon, 12 Apr 2021 15:01:31 +0000 (+0200) Subject: Lib: Fix handling of buffers in timestamp formatting X-Git-Tag: v2.0.9~85 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c41e1ca3e93d4498eaa085139caf1545e08c1d8;p=thirdparty%2Fbird.git Lib: Fix handling of buffers in timestamp formatting The code in tm_format_real_time() mixed up two buffers and their sizes, which may cause crash in MRT dumping code. Thanks to Piotr Wydrych for the bugreport. --- diff --git a/lib/timer.c b/lib/timer.c index a5abbcc46..381163d0b 100644 --- a/lib/timer.c +++ b/lib/timer.c @@ -365,8 +365,9 @@ tm_format_real_time(char *x, size_t max, const char *fmt, btime t) if (!localtime_r(&ts, &tm)) return 0; - byte tbuf[TM_DATETIME_BUFFER_SIZE]; - if (!strfusec(tbuf, max, fmt, t2)) + size_t tbuf_size = MIN(max, 4096); + byte *tbuf = alloca(tbuf_size); + if (!strfusec(tbuf, tbuf_size, fmt, t2)) return 0; if (!strftime(x, max, tbuf, &tm))