Malformed connected cell closes connection but code continues
In connection_edge_process_relay_cell_not_open(), there is a clause that closes the connection if the connected cell is malformed. However, it does not return from the function. Every other clause where the connection is closed does return.
This looks like a bug. I couldn't immediately find any issues with this, though. Perhaps an assert if the connection gets marked twice..