Skip to content

Commit 0eb5e40

Browse files
committed
fixed GHSA-h5rc-j5f5-3gcm - missing overflow check in channel window adjust
1 parent 2d0a418 commit 0eb5e40

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

russh/src/client/encrypted.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -539,8 +539,8 @@ impl Session {
539539
debug!("channel_window_adjust amount: {:?}", amount);
540540
if let Some(ref mut enc) = self.common.encrypted {
541541
if let Some(ref mut channel) = enc.channels.get_mut(&channel_num) {
542-
channel.recipient_window_size += amount;
543-
new_size = channel.recipient_window_size;
542+
new_size = channel.recipient_window_size.saturating_add(amount);
543+
channel.recipient_window_size = new_size;
544544
} else {
545545
return Err(crate::Error::WrongChannel.into());
546546
}

russh/src/server/encrypted.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -659,8 +659,8 @@ impl Session {
659659
let mut new_size = 0;
660660
if let Some(ref mut enc) = self.common.encrypted {
661661
if let Some(channel) = enc.channels.get_mut(&channel_num) {
662-
channel.recipient_window_size += amount;
663-
new_size = channel.recipient_window_size;
662+
new_size = channel.recipient_window_size.saturating_add(amount);
663+
channel.recipient_window_size = new_size;
664664
} else {
665665
return Err(Error::WrongChannel.into());
666666
}

0 commit comments

Comments
 (0)