Explorar el Código

In connection_ap_handshake_process_socks(), mark the socks request as finished if a reply is send after a parse error

Silences the log message:
[warn] {BUG} _connection_mark_unattached_ap(): Bug: stream (marked at connection_edge.c:2224) sending two socks replies?
after the client triggered the "Tor is not an HTTP Proxy" response.

No additional socks reply was sent, though.
Fabian Keil hace 12 años
padre
commit
2888644a9f
Se han modificado 1 ficheros con 5 adiciones y 0 borrados
  1. 5 0
      src/or/connection_edge.c

+ 5 - 0
src/or/connection_edge.c

@@ -2319,6 +2319,11 @@ connection_ap_handshake_process_socks(entry_connection_t *conn)
     connection_write_to_buf((const char*)socks->reply, socks->replylen,
                             base_conn);
     socks->replylen = 0;
+    if (sockshere == -1) {
+      /* An invalid request just got a reply, no additional
+       * one is necessary. */
+      socks->has_finished = 1;
+    }
   }
 
   if (sockshere == 0) {