diff options
author | djm@openbsd.org <djm@openbsd.org> | 2014-11-21 02:00:38 +0100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2014-11-24 00:15:47 +0100 |
commit | b6de5ac9ed421362f479d1ad4fa433d2e25dad5b (patch) | |
tree | bd41e4ea1d4dc7170c0f1ce6035829a1aa9b03a5 /krl.c | |
parent | upstream commit (diff) | |
download | openssh-b6de5ac9ed421362f479d1ad4fa433d2e25dad5b.tar.xz openssh-b6de5ac9ed421362f479d1ad4fa433d2e25dad5b.zip |
upstream commit
fix NULL pointer dereference crash on invalid timestamp
found using Michal Zalewski's afl fuzzer
Diffstat (limited to 'krl.c')
-rw-r--r-- | krl.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -14,7 +14,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $OpenBSD: krl.c,v 1.18 2014/11/17 00:21:40 djm Exp $ */ +/* $OpenBSD: krl.c,v 1.19 2014/11/21 01:00:38 djm Exp $ */ #include "includes.h" @@ -747,8 +747,12 @@ format_timestamp(u_int64_t timestamp, char *ts, size_t nts) t = timestamp; tm = localtime(&t); - *ts = '\0'; - strftime(ts, nts, "%Y%m%dT%H%M%S", tm); + if (tm == NULL) + strlcpy(ts, "<INVALID>", sizeof(nts)); + else { + *ts = '\0'; + strftime(ts, nts, "%Y%m%dT%H%M%S", tm); + } } static int |