summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-10-14 20:57:00 +0200
committerAnton Kling <anton@kling.gg>2024-10-14 20:57:00 +0200
commita5b508d1fb751015ecb9b6701749dcdcd81e3071 (patch)
treea4c2d52a344e1bb888795b2b9082a3edbcef9906 /kernel
parent3fd4be7cb2744d852cf99e627f7bfea3fd83bd3c (diff)
TCP: Don't free buffer prematurely
Diffstat (limited to 'kernel')
-rw-r--r--kernel/network/tcp.c2
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;
}