Commit 6ee91385 authored by Andrea Shepard's avatar Andrea Shepard
Browse files

Call connection_or_close_for_error() properly if write_to_buf() ever fails on an orconn

parent 125c8e54
Loading
Loading
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.
+6 −0
Original line number Diff line number Diff line
@@ -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).",