aboutsummaryrefslogtreecommitdiff
path: root/embassy-net
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2021-06-18 01:58:14 +0200
committerDario Nieuwenhuis <[email protected]>2021-06-18 01:58:14 +0200
commitd94feb9fcdb5e19aa42a411a8028140f12c79f0e (patch)
tree8660c6023f08f9263a373ce5415573457154623e /embassy-net
parent0d1ae0a01e18e19cc8f33fd184785c19f18e1277 (diff)
net/tcp: Fix panic when consuming 0 bytes at EOF
Diffstat (limited to 'embassy-net')
-rw-r--r--embassy-net/src/tcp_socket.rs5
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}