diff options
| author | Dario Nieuwenhuis <[email protected]> | 2021-06-18 01:58:14 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2021-06-18 01:58:14 +0200 |
| commit | d94feb9fcdb5e19aa42a411a8028140f12c79f0e (patch) | |
| tree | 8660c6023f08f9263a373ce5415573457154623e /embassy-net | |
| parent | 0d1ae0a01e18e19cc8f33fd184785c19f18e1277 (diff) | |
net/tcp: Fix panic when consuming 0 bytes at EOF
Diffstat (limited to 'embassy-net')
| -rw-r--r-- | embassy-net/src/tcp_socket.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/embassy-net/src/tcp_socket.rs b/embassy-net/src/tcp_socket.rs index def4c8176..25c8af459 100644 --- a/embassy-net/src/tcp_socket.rs +++ b/embassy-net/src/tcp_socket.rs | |||
| @@ -151,6 +151,11 @@ impl<'a> AsyncBufRead for TcpSocket<'a> { | |||
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | fn consume(self: Pin<&mut Self>, amt: usize) { | 153 | fn consume(self: Pin<&mut Self>, amt: usize) { |
| 154 | if amt == 0 { | ||
| 155 | // smoltcp's recv returns Finished if we're at EOF, | ||
| 156 | // even if we're "reading" 0 bytes. | ||
| 157 | return; | ||
| 158 | } | ||
| 154 | self.with(|s| s.recv(|_| (amt, ()))).unwrap() | 159 | self.with(|s| s.recv(|_| (amt, ()))).unwrap() |
| 155 | } | 160 | } |
| 156 | } | 161 | } |
