mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-11-01 06:20:55 +01:00
14931: fix socket/address length calculation
This commit is contained in:
parent
87db190920
commit
12e1cf567d
3 changed files with 13 additions and 5 deletions
|
|
@ -1699,7 +1699,7 @@ zftp_open(char *name, char **args, int flags)
|
|||
struct hostent *zhostp = NULL;
|
||||
char **addrp, *fname;
|
||||
int err, len, tmout;
|
||||
int herrno, af, salen;
|
||||
int herrno, af, hlen;
|
||||
|
||||
if (!*args) {
|
||||
if (zfsess->userparams)
|
||||
|
|
@ -1777,11 +1777,11 @@ zftp_open(char *name, char **args, int flags)
|
|||
zfsess->control.peer.a.sa_family = af;
|
||||
#ifdef SUPPORT_IPV6
|
||||
if(af == AF_INET6) {
|
||||
salen = sizeof(struct sockaddr_in6);
|
||||
hlen = 16;
|
||||
} else
|
||||
#endif /* SUPPORT_IPV6 */
|
||||
{
|
||||
salen = sizeof(struct sockaddr_in);
|
||||
hlen = 4;
|
||||
}
|
||||
|
||||
tcp_socket(af, SOCK_STREAM, 0, &(zfsess->control));
|
||||
|
|
@ -1805,7 +1805,7 @@ zftp_open(char *name, char **args, int flags)
|
|||
|
||||
/* try all possible IP's */
|
||||
for (addrp = zhostp->h_addr_list; err && *addrp; addrp++) {
|
||||
if(salen != zhostp->h_length)
|
||||
if(hlen != zhostp->h_length)
|
||||
zwarnnam(name, "address length mismatch", NULL, 0);
|
||||
do {
|
||||
err = tcp_connect(&(zfsess->control), *addrp, zhostp, zservp->s_port);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue