summaryrefslogtreecommitdiff
path: root/ssh-keyscan.c
diff options
context:
space:
mode:
authordtucker@openbsd.org@openbsd.org <dtucker@openbsd.org@openbsd.org>2017-11-25 06:46:22 +0000
committerDamien Miller <djm@mindrot.org>2017-11-28 12:01:49 +1100
commit5db6fbf1438b108e5df3e79a1b4de544373bc2d4 (patch)
tree95f5df8248cca30df3ab00e70e80d28410be760c /ssh-keyscan.c
parent2d638e986085bdf1a40310ed6e2307463db96ea0 (diff)
upstream commit
Add monotime_ts and monotime_tv that return monotonic timespec and timeval respectively. Replace calls to gettimeofday() in packet timing with monotime_tv so that the callers will work over a clock step. Should prevent integer overflow during clock steps reported by wangle6 at huawei.com. "I like" markus@ OpenBSD-Commit-ID: 74d684264814ff806f197948b87aa732cb1b0b8a
Diffstat (limited to 'ssh-keyscan.c')
-rw-r--r--ssh-keyscan.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ssh-keyscan.c b/ssh-keyscan.c
index 258123ae8..a816a220e 100644
--- a/ssh-keyscan.c
+++ b/ssh-keyscan.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-keyscan.c,v 1.115 2017/06/30 04:17:23 dtucker Exp $ */ 1/* $OpenBSD: ssh-keyscan.c,v 1.116 2017/11/25 06:46:22 dtucker Exp $ */
2/* 2/*
3 * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>. 3 * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
4 * 4 *
@@ -377,7 +377,7 @@ conalloc(char *iname, char *oname, int keytype)
377 fdcon[s].c_len = 4; 377 fdcon[s].c_len = 4;
378 fdcon[s].c_off = 0; 378 fdcon[s].c_off = 0;
379 fdcon[s].c_keytype = keytype; 379 fdcon[s].c_keytype = keytype;
380 gettimeofday(&fdcon[s].c_tv, NULL); 380 monotime_tv(&fdcon[s].c_tv);
381 fdcon[s].c_tv.tv_sec += timeout; 381 fdcon[s].c_tv.tv_sec += timeout;
382 TAILQ_INSERT_TAIL(&tq, &fdcon[s], c_link); 382 TAILQ_INSERT_TAIL(&tq, &fdcon[s], c_link);
383 FD_SET(s, read_wait); 383 FD_SET(s, read_wait);
@@ -411,7 +411,7 @@ static void
411contouch(int s) 411contouch(int s)
412{ 412{
413 TAILQ_REMOVE(&tq, &fdcon[s], c_link); 413 TAILQ_REMOVE(&tq, &fdcon[s], c_link);
414 gettimeofday(&fdcon[s].c_tv, NULL); 414 monotime_tv(&fdcon[s].c_tv);
415 fdcon[s].c_tv.tv_sec += timeout; 415 fdcon[s].c_tv.tv_sec += timeout;
416 TAILQ_INSERT_TAIL(&tq, &fdcon[s], c_link); 416 TAILQ_INSERT_TAIL(&tq, &fdcon[s], c_link);
417} 417}
@@ -545,7 +545,7 @@ conloop(void)
545 con *c; 545 con *c;
546 int i; 546 int i;
547 547
548 gettimeofday(&now, NULL); 548 monotime_tv(&now);
549 c = TAILQ_FIRST(&tq); 549 c = TAILQ_FIRST(&tq);
550 550
551 if (c && (c->c_tv.tv_sec > now.tv_sec || 551 if (c && (c->c_tv.tv_sec > now.tv_sec ||