[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-bugs] #11302 [Tor]: connection_handle_write_impl() should handle orconns properly if getsockopt() fails



#11302: connection_handle_write_impl() should handle orconns properly if
getsockopt() fails
--------------------+------------------------------------
 Reporter:  andrea  |          Owner:  andrea
     Type:  defect  |         Status:  new
 Priority:  normal  |      Milestone:  Tor: 0.2.5.x-final
Component:  Tor     |        Version:  Tor: 0.2.5.3-alpha
 Keywords:          |  Actual Points:
Parent ID:          |         Points:
--------------------+------------------------------------
 The function connection_handle_write_impl() in connection.c contains this
 code:

 {{{
 /* Sometimes, "writable" means "connected". */
 if (connection_state_is_connecting(conn)) {
   if (getsockopt(conn->s, SOL_SOCKET, SO_ERROR, (void*)&e, &len) < 0) {
     log_warn(LD_BUG, "getsockopt() syscall failed");
     if (CONN_IS_EDGE(conn))
       connection_edge_end_errno(TO_EDGE_CONN(conn));
     connection_mark_for_close(conn);
     return -1;
   }
 }}}

 This might close an orconn out from under the channel layer improperly.
 It should test for orconns and call connection_or_connect_failed() in that
 case rather than connection_mark_for_close() directly.  Created pursuant
 to connection_mark_for_close() audit task #7472.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/11302>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs