mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-03-22 14:39:24 -05:00
socks5_negotiate(): rather than using an uninitialised value when passed
an address of an invalid type, assert() that it will never happen. Do something similar for SOCKS4 as well. [originally from svn r3114]
This commit is contained in:
parent
08b127f95f
commit
62c756c3f3
4
proxy.c
4
proxy.c
@ -695,6 +695,7 @@ int proxy_socks4_negotiate (Proxy_Socket p, int change)
|
|||||||
namelen = 0;
|
namelen = 0;
|
||||||
sk_addrcopy(p->remote_addr, addr);
|
sk_addrcopy(p->remote_addr, addr);
|
||||||
} else { /* type == ADDRTYPE_NAME */
|
} else { /* type == ADDRTYPE_NAME */
|
||||||
|
assert(type == ADDRTYPE_NAME);
|
||||||
sk_getaddr(p->remote_addr, hostname, lenof(hostname));
|
sk_getaddr(p->remote_addr, hostname, lenof(hostname));
|
||||||
namelen = strlen(hostname) + 1; /* include the NUL */
|
namelen = strlen(hostname) + 1; /* include the NUL */
|
||||||
addr[0] = addr[1] = addr[2] = 0;
|
addr[0] = addr[1] = addr[2] = 0;
|
||||||
@ -999,7 +1000,8 @@ int proxy_socks5_negotiate (Proxy_Socket p, int change)
|
|||||||
len = 22; /* 4 hdr + 16 addr + 2 trailer */
|
len = 22; /* 4 hdr + 16 addr + 2 trailer */
|
||||||
command[3] = 4; /* IPv6 */
|
command[3] = 4; /* IPv6 */
|
||||||
sk_addrcopy(p->remote_addr, command+4);
|
sk_addrcopy(p->remote_addr, command+4);
|
||||||
} else if (type == ADDRTYPE_NAME) {
|
} else {
|
||||||
|
assert(type == ADDRTYPE_NAME);
|
||||||
command[3] = 3;
|
command[3] = 3;
|
||||||
sk_getaddr(p->remote_addr, command+5, 256);
|
sk_getaddr(p->remote_addr, command+5, 256);
|
||||||
command[4] = strlen(command+5);
|
command[4] = strlen(command+5);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user