diff options
author | Anton Kling <anton@kling.gg> | 2024-10-14 20:57:00 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-10-14 20:57:00 +0200 |
commit | a5b508d1fb751015ecb9b6701749dcdcd81e3071 (patch) | |
tree | a4c2d52a344e1bb888795b2b9082a3edbcef9906 /kernel | |
parent | 3fd4be7cb2744d852cf99e627f7bfea3fd83bd3c (diff) |
TCP: Don't free buffer prematurely
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/network/tcp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/network/tcp.c b/kernel/network/tcp.c index e608f6c..d3ed73e 100644 --- a/kernel/network/tcp.c +++ b/kernel/network/tcp.c @@ -296,7 +296,6 @@ void handle_tcp(ipv4_t src_ip, ipv4_t dst_ip, const u8 *payload, if (FIN & flags) { tcp_send_empty_payload(con, ACK); con->state = TCP_STATE_CLOSE_WAIT; - tcp_strip_connection(con); break; } if (tcp_payload_length > 0) { @@ -305,6 +304,7 @@ void handle_tcp(ipv4_t src_ip, ipv4_t dst_ip, const u8 *payload, } int rc = ringbuffer_write(&con->incoming_buffer, tcp_payload, tcp_payload_length); + assert(!ringbuffer_isempty(&con->incoming_buffer)); con->rcv_nxt += rc; con->should_send_ack = 1; } |