libpurple/proxy.c

changeset 23232
4042947ec6c4
parent 22674
2628be97bebd
child 23234
01e07d16cc75
equal deleted inserted replaced
23231:77a7493b760b 23232:4042947ec6c4
1143 guchar *dest, *buf; 1143 guchar *dest, *buf;
1144 PurpleProxyConnectData *connect_data = data; 1144 PurpleProxyConnectData *connect_data = data;
1145 int len; 1145 int len;
1146 1146
1147 if (connect_data->read_buffer == NULL) { 1147 if (connect_data->read_buffer == NULL) {
1148 connect_data->read_buf_len = 4; 1148 connect_data->read_buf_len = 5;
1149 connect_data->read_buffer = g_malloc(connect_data->read_buf_len); 1149 connect_data->read_buffer = g_malloc(connect_data->read_buf_len);
1150 connect_data->read_len = 0; 1150 connect_data->read_len = 0;
1151 } 1151 }
1152 1152
1153 dest = connect_data->read_buffer + connect_data->read_len; 1153 dest = connect_data->read_buffer + connect_data->read_len;
1212 case 0x04: /* the address is a version-6 IP address, with a length of 16 octets */ 1212 case 0x04: /* the address is a version-6 IP address, with a length of 16 octets */
1213 if(!s5_ensure_buffer_length(connect_data, 4 + 16)) 1213 if(!s5_ensure_buffer_length(connect_data, 4 + 16))
1214 return; 1214 return;
1215 buf += 4 + 16; 1215 buf += 4 + 16;
1216 break; 1216 break;
1217 default:
1218 purple_debug_error("socks5 proxy", "Invalid ATYP received (0x%X)\n", buf[3]);
1219 purple_proxy_connect_data_disconnect(connect_data,
1220 _("Received invalid data on connection with server."));
1221 return;
1217 } 1222 }
1218 1223
1219 /* Skip past BND.PORT */ 1224 /* Skip past BND.PORT */
1220 if(!s5_ensure_buffer_length(connect_data, (buf - connect_data->read_buffer) + 2)) 1225 if(!s5_ensure_buffer_length(connect_data, (buf - connect_data->read_buffer) + 2))
1221 return; 1226 return;

mercurial