Loading changes/bug11304 0 → 100644 +5 −0 Original line number Diff line number Diff line o Bugfixes: - If write_to_buf() in connection_write_to_buf_impl_() ever fails, check if it's an or_connection_t and correctly call connection_or_close_for_error() rather than connection_mark_for_close() directly. Fixes bug #11304. src/or/connection.c +6 −0 Original line number Diff line number Diff line Loading @@ -4009,6 +4009,12 @@ connection_write_to_buf_impl_,(const char *string, size_t len, "write_to_buf failed. Closing circuit (fd %d).", (int)conn->s); circuit_mark_for_close(circuit_get_by_edge_conn(TO_EDGE_CONN(conn)), END_CIRC_REASON_INTERNAL); } else if (conn->type == CONN_TYPE_OR) { or_connection_t *orconn = TO_OR_CONN(conn); log_warn(LD_NET, "write_to_buf failed on an orconn; notifying of error " "(fd %d)", (int)(conn->s)); connection_or_close_for_error(orconn, 0); } else { log_warn(LD_NET, "write_to_buf failed. Closing connection (fd %d).", Loading Loading
changes/bug11304 0 → 100644 +5 −0 Original line number Diff line number Diff line o Bugfixes: - If write_to_buf() in connection_write_to_buf_impl_() ever fails, check if it's an or_connection_t and correctly call connection_or_close_for_error() rather than connection_mark_for_close() directly. Fixes bug #11304.
src/or/connection.c +6 −0 Original line number Diff line number Diff line Loading @@ -4009,6 +4009,12 @@ connection_write_to_buf_impl_,(const char *string, size_t len, "write_to_buf failed. Closing circuit (fd %d).", (int)conn->s); circuit_mark_for_close(circuit_get_by_edge_conn(TO_EDGE_CONN(conn)), END_CIRC_REASON_INTERNAL); } else if (conn->type == CONN_TYPE_OR) { or_connection_t *orconn = TO_OR_CONN(conn); log_warn(LD_NET, "write_to_buf failed on an orconn; notifying of error " "(fd %d)", (int)(conn->s)); connection_or_close_for_error(orconn, 0); } else { log_warn(LD_NET, "write_to_buf failed. Closing connection (fd %d).", Loading