fix: use-after-free in tcp_conn_destroy + throttle consumer_ack
tcp_conn_destroy: set read/write queue callbacks to NULL before queue_free to stop deferred autofetch (drain_cb on freed rc). write_on_get_cb: throttle consumer_ack to every 8th write_queue dequeue instead of every single one (was 30+ ACK/sec). ack_batch field in tcp_proxy_server_conn.
This commit is contained in:
1 parent
0449a5fd9d
commit
d784b2bfbe
3 files changed
+11
-4
No files matched your search
@@ -105,6 +105,8 @@ void tcp_conn_destroy(struct tcp_conn* tc) {
|
||||
}
|
||||
queue_waiter_cancel(tc->read_queue, &tc->read_waiter);
|
||||
queue_set_empty_callback(tc->read_queue, NULL, NULL);
|
||||
queue_set_callback(tc->read_queue, NULL, NULL);
|
||||
queue_set_callback(tc->write_queue, NULL, NULL);
|
||||
|
||||
struct ll_entry* e;
|
||||
while ((e = queue_data_get(tc->read_queue)) != NULL) {
|
||||
|
||||
Reference in new issue
Block a user