Browse Source

etcp: закрыть UAF в клиентской ветке tcp_link_close_cb

etcp_on_link_down может каскадно закрыть conn и освободить link;
использовать сохранённый etcp и проверять state!=2 перед reconnect
v2
evgeny 3 weeks ago
parent
commit
d95048160d
  1. 4
      src/transport_layer/etcp_connections.c

4
src/transport_layer/etcp_connections.c

@ -1168,8 +1168,8 @@ static void tcp_link_close_cb(struct stcp_link *sl, int err, void *arg) {
}
} else {
DEBUG_INFO(DEBUG_CATEGORY_ETCP, "[%s] TCP link %d down err=%d, scheduling reconnect", link->etcp->log_name, link->local_link_id, err);
etcp_on_link_down(link->etcp, link);
etcp_tcp_link_start_reconnect(link);
etcp_on_link_down(etcp, link);
if (etcp->state != 2) etcp_tcp_link_start_reconnect(link);
}
}

Loading…
Cancel
Save