The libssh2_channel_receive_window_adjust() function failed to set the state
variables at times and thus this function would misbehave on repeated invokes.
Этот коммит содержится в:
родитель
f216b36328
Коммит
d90d8bdae7
8
NEWS
8
NEWS
@ -1,6 +1,14 @@
|
|||||||
Version 0.18
|
Version 0.18
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
- Peter O'Gorman reported how a SCP transfer would hang for him, and it was
|
||||||
|
fairly easy reproducable. One bug was in the transport layer, ignoring to
|
||||||
|
read more data while there was data left even though it couldn't decrypt the
|
||||||
|
data that was left due to it being too little... The other bug was in the
|
||||||
|
channel layer, where the libssh2_channel_receive_window_adjust() function
|
||||||
|
missed to set the state variables at times and thus this function would
|
||||||
|
misbehave on repeated invokes.
|
||||||
|
|
||||||
- Satish Mittal and David J Sullivan fixed an infinit recv() loop in
|
- Satish Mittal and David J Sullivan fixed an infinit recv() loop in
|
||||||
libssh2_banner_receive()
|
libssh2_banner_receive()
|
||||||
|
|
||||||
|
@ -1327,7 +1327,9 @@ libssh2_channel_receive_window_adjust(LIBSSH2_CHANNEL * channel,
|
|||||||
"Unable to send transfer-window adjustment packet, deferring",
|
"Unable to send transfer-window adjustment packet, deferring",
|
||||||
0);
|
0);
|
||||||
channel->adjust_queue = adjustment;
|
channel->adjust_queue = adjustment;
|
||||||
|
channel->adjust_state = libssh2_NB_state_idle;
|
||||||
} else {
|
} else {
|
||||||
|
channel->adjust_state = libssh2_NB_state_idle;
|
||||||
channel->remote.window_size += adjustment;
|
channel->remote.window_size += adjustment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user