From 7c1f9aa780e2d079a450401fa7dc5e5a94d397dd Mon Sep 17 00:00:00 2001 From: henri Date: Mon, 22 Apr 2013 19:36:07 +0000 Subject: [PATCH] Removed a kinda brutal assert(0); Don't abort when a socks4 proxy returns an invalid message, just ignore it instead. --- nsock/src/proxy_socks4.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/nsock/src/proxy_socks4.c b/nsock/src/proxy_socks4.c index 0ebebdf58..e9ffd3dde 100644 --- a/nsock/src/proxy_socks4.c +++ b/nsock/src/proxy_socks4.c @@ -199,9 +199,15 @@ void proxy_socks4_handler(nsock_pool nspool, nsock_event nsevent, void *udata) { res = nse_readbuf(nse, &reslen); - if (!(reslen == 8 && res[1] == 90)) { - assert(0); - } + if (!(reslen == 8 && res[1] == 90)) { + struct proxy_node *node; + + node = proxy_ctx_node_current(nse->iod->px_ctx); + nsock_log_debug(nsp, "Ignoring invalid socks4 reply from proxy %s", + node->nodestr); + break; + } + nse->iod->px_ctx->px_state = PROXY_STATE_SOCKS4_TUNNEL_ESTABLISHED; if (nse->iod->px_ctx->px_current->next == NULL) {