# HG changeset patch # User Daniel Atallah # Date 1211255426 0 # Node ID d0f933c88fc6391c79cb9769ee813cd2121a9501 # Parent 318905da6f8d9159b710b85054f2c7140c2669a5 Fix SOCK5 error handling to abort when we get a bogus ATYP response. Make the initial buffer size big enough to read the address length for DOMAINNAME addresses. References #5840. diff -r 318905da6f8d -r d0f933c88fc6 libpurple/proxy.c --- a/libpurple/proxy.c Tue May 20 02:14:50 2008 +0000 +++ b/libpurple/proxy.c Tue May 20 03:50:26 2008 +0000 @@ -1145,7 +1145,7 @@ int len; if (connect_data->read_buffer == NULL) { - connect_data->read_buf_len = 4; + connect_data->read_buf_len = 5; connect_data->read_buffer = g_malloc(connect_data->read_buf_len); connect_data->read_len = 0; } @@ -1214,6 +1214,11 @@ return; buf += 4 + 16; break; + default: + purple_debug_error("socks5 proxy", "Invalid ATYP received (0x%X)\n", buf[3]); + purple_proxy_connect_data_disconnect(connect_data, + _("Received invalid data on connection with server.")); + return; } /* Skip past BND.PORT */