diff options
author | Damien Miller <djm@mindrot.org> | 2010-08-05 23:09:48 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2010-08-05 23:09:48 +1000 |
commit | 7d45718943e63ec649003d3a9b56e531da2193ea (patch) | |
tree | 2f5d4845c06f6c9ff4ad36a0843fd017e69c5a3a /ChangeLog | |
parent | b89e6b76be2842d7d91b186753af741a73465d71 (diff) |
- djm@cvs.openbsd.org 2010/08/05 13:08:42
[channels.c]
Fix a trio of bugs in the local/remote window calculation for datagram
data channels (i.e. TunnelForward):
Calculate local_consumed correctly in channel_handle_wfd() by measuring
the delta to buffer_len(c->output) from when we start to when we finish.
The proximal problem here is that the output_filter we use in portable
modified the length of the dequeued datagram (to futz with the headers
for !OpenBSD).
In channel_output_poll(), don't enqueue datagrams that won't fit in the
peer's advertised packet size (highly unlikely to ever occur) or which
won't fit in the peer's remaining window (more likely).
In channel_input_data(), account for the 4-byte string header in
datagram packets that we accept from the peer and enqueue in c->output.
report, analysis and testing 2/3 cases from wierbows AT us.ibm.com;
"looks good" markus@
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -25,6 +25,26 @@ | |||
25 | - djm@cvs.openbsd.org 2010/08/04 06:08:40 | 25 | - djm@cvs.openbsd.org 2010/08/04 06:08:40 |
26 | [ssh-keysign.c] | 26 | [ssh-keysign.c] |
27 | clean for -Wuninitialized (Id sync only; portable had this change) | 27 | clean for -Wuninitialized (Id sync only; portable had this change) |
28 | - djm@cvs.openbsd.org 2010/08/05 13:08:42 | ||
29 | [channels.c] | ||
30 | Fix a trio of bugs in the local/remote window calculation for datagram | ||
31 | data channels (i.e. TunnelForward): | ||
32 | |||
33 | Calculate local_consumed correctly in channel_handle_wfd() by measuring | ||
34 | the delta to buffer_len(c->output) from when we start to when we finish. | ||
35 | The proximal problem here is that the output_filter we use in portable | ||
36 | modified the length of the dequeued datagram (to futz with the headers | ||
37 | for !OpenBSD). | ||
38 | |||
39 | In channel_output_poll(), don't enqueue datagrams that won't fit in the | ||
40 | peer's advertised packet size (highly unlikely to ever occur) or which | ||
41 | won't fit in the peer's remaining window (more likely). | ||
42 | |||
43 | In channel_input_data(), account for the 4-byte string header in | ||
44 | datagram packets that we accept from the peer and enqueue in c->output. | ||
45 | |||
46 | report, analysis and testing 2/3 cases from wierbows AT us.ibm.com; | ||
47 | "looks good" markus@ | ||
28 | 48 | ||
29 | 20100903 | 49 | 20100903 |
30 | - (dtucker) [monitor.c] Bug #1795: Initialize the values to be returned from | 50 | - (dtucker) [monitor.c] Bug #1795: Initialize the values to be returned from |