MINA SSHD
  1. MINA SSHD
  2. SSHD-73

Infinite loop in ChannelOutputStream

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.4.0
    • Labels:
      None

      Description

      ChannelOutputStream's write() method can get into a state where there is no space in the outgoing window, but there is data to write, so flush() gets invoked. But there is also n data in the buffer itself, so we just create a new buffer, set the length back to zero, and loop back into write(), which calls flush() again because there is no room for the data in the outgoing window.

        Issue Links

          Activity

          Hide
          Shawn Pearce added a comment -

          Committed r897372
          M sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
          Committed r897373
          M sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
          Committed r897374
          M sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java

          Show
          Shawn Pearce added a comment - Committed r897372 M sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java Committed r897373 M sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java Committed r897374 M sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java

            People

            • Assignee:
              Shawn Pearce
              Reporter:
              Shawn Pearce
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development