mirror of
https://github.com/PowerShell/openssh-portable.git
synced 2025-07-27 15:54:22 +02:00
upstream commit
Account for packets buffered but not yet processed when computing whether or not it is time to perform rekeying. bz#2521, based loosely on a patch from olo at fb.com, ok djm@ Upstream-ID: 67e268b547f990ed220f3cb70a5624d9bda12b8c
This commit is contained in:
parent
44cf930e67
commit
c0060a6529
11
packet.c
11
packet.c
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: packet.c,v 1.222 2016/01/14 16:17:40 markus Exp $ */
|
/* $OpenBSD: packet.c,v 1.223 2016/01/29 02:42:46 dtucker Exp $ */
|
||||||
/*
|
/*
|
||||||
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||||
@ -2251,16 +2251,21 @@ int
|
|||||||
ssh_packet_need_rekeying(struct ssh *ssh)
|
ssh_packet_need_rekeying(struct ssh *ssh)
|
||||||
{
|
{
|
||||||
struct session_state *state = ssh->state;
|
struct session_state *state = ssh->state;
|
||||||
|
u_int32_t buf_in, buf_out;
|
||||||
|
|
||||||
if (ssh->compat & SSH_BUG_NOREKEY)
|
if (ssh->compat & SSH_BUG_NOREKEY)
|
||||||
return 0;
|
return 0;
|
||||||
|
buf_in = roundup(sshbuf_len(state->input),
|
||||||
|
state->newkeys[MODE_IN]->enc.block_size);
|
||||||
|
buf_out = roundup(sshbuf_len(state->output),
|
||||||
|
state->newkeys[MODE_OUT]->enc.block_size);
|
||||||
return
|
return
|
||||||
(state->p_send.packets > MAX_PACKETS) ||
|
(state->p_send.packets > MAX_PACKETS) ||
|
||||||
(state->p_read.packets > MAX_PACKETS) ||
|
(state->p_read.packets > MAX_PACKETS) ||
|
||||||
(state->max_blocks_out &&
|
(state->max_blocks_out &&
|
||||||
(state->p_send.blocks > state->max_blocks_out)) ||
|
(state->p_send.blocks + buf_out > state->max_blocks_out)) ||
|
||||||
(state->max_blocks_in &&
|
(state->max_blocks_in &&
|
||||||
(state->p_read.blocks > state->max_blocks_in)) ||
|
(state->p_read.blocks + buf_in > state->max_blocks_in)) ||
|
||||||
(state->rekey_interval != 0 && state->rekey_time +
|
(state->rekey_interval != 0 && state->rekey_time +
|
||||||
state->rekey_interval <= monotime());
|
state->rekey_interval <= monotime());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user