浏览代码

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 14 年之前
父节点
当前提交
2888644a9f
共有 1 个文件被更改,包括 5 次插入0 次删除
  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) {